Computer system linked by using information in data objects

ABSTRACT

Various improvements to steganographic systems, and applications therefore, are disclosed. The improvements include facilitating scale and rotation registration for steganographic decoding by use of rotationally symmetric steganographically embedded patterns and subliminal digital graticules; improved techniques for decoding without access to unencoded originals; improving robustness of steganographic coding in motion pictures and/or in the presence of lossy compression/decompression; and representing data by patterned bit cells whose energy in the spatial domain facilitates decoding registration. Applications include enhanced-security financial transactions, counterfeit resistant identification cards, fraud deterrent systems for cellular telephony, covert modem channels in video transmissions, photo duplication kiosks with automatic copyright detection, and hotlinked image objects (e.g. with embedded URLs) for use on the internet.

The present application is a Continuation in Part of:

1) U.S. application Ser. No. 08/649,419 filed May 16, 1996 (now U.S.Pat. No. 5,862,260)

2) U.S. application Ser. No. 08/508,083 filed Jul. 27, 1995 (now U.S.Pat. No. 5,841,978)

3) PCT application Serial No. PCT/US96/06618 filed May 7, 1996,

The present application is related to:

1) application Ser. No. 08/637,531 filed Apr. 25, 1996 (now U.S. Pat.No. 5,822,436)

2) application Ser. No. 08/614,521 filed Mar. 15, 1996 (now U.S. Pat.No. 5,745,604)

3) application Ser. No. 08/534,005 filed Sep. 25, 1995 (now U.S. Pat.No. 5,832,119)

4) application Ser. No. 08/512,993 filed Aug. 9, 1995 (now abandoned)

5) application Ser. No. 08/508,083 filed Jul. 27, 1995 (now U.S. Pat.No. 5,841,978)

6) application Ser. No. 08/436,098 filed May 8, 1995 (now U.S. Pat. No.5,636,292)

7) application Ser. No. 08/436,099 filed May 8, 1995 (now U.S. Pat. No.6,710,834)

8) application Ser. No. 08/436,102 filed May 8, 1995 (now U.S. Pat. No.5,748,783)

9) application Ser. No. 08/436,134 filed May 8, 1995 (now U.S. Pat. No.5,748,763)

10) application Ser. No. 08/438,159 filed May 8, 1995 (now U.S. Pat. No.5,850,481)

11) application PCT/US94/13366 filed Nov. 16, 1994,

12) application Ser. No. 08/327,426 filed Oct. 21, 1994 (now U.S. Pat.No. 5,768,426)

13) application Ser. No. 08/215,289 filed Mar. 17, 1994 (which is nowabandoned)

14) application Ser. No. 08/154,866 filed Nov. 18, 1993 (which is nowabandoned)

MICROFICHE APPENDIX

A microfiche appendix has been submitted with this application. Themicrofiche appendix contains 1077 pages on thirteen microfiche.

BACKGROUND

Hiding data in imagery or audio is a technique well known to artisans inthe field, and is termed "steganography." There are a number of diverseapproaches to, and applications of, steganography. A brief surveyfollows:

British patent publication 2,196,167 to Thorn EMI discloses a system inwhich an audio recording is electronically mixed with a marking signalindicative of the owner of the recording, where the combination isperceptually identical to the original. U.S. Pat. Nos. 4,963,998 and5,079,648 disclose variants of this system.

U.S. Pat. No. 5,319,735 to Bolt, Berenak & Newman rests on the sameprinciples as the earlier Thorn EMI publication, but additionallyaddresses psycho-acoustic masking issues.

U.S. Pat. Nos. 4,425,642, 4,425,661, 5,404,377 and 5,473,631 to Mosesdisclose various systems for imperceptibly embedding data into audiosignals--the latter two patents particularly focusing on neural networkimplementations and perceptual coding details.

U.S. Pat. No. 4,943,973 to AT&T discloses a system employing spreadspectrum techniques for adding a low level noise signal to other data toconvey auxiliary data therewith. The patent is particularly illustratedin the context of transmitting network control signals along withdigitized voice signals.

U.S. Pat. No. 5,161,210 to U.S. Philips discloses a system in whichadditional low-level quantization levels are defined on an audio signalto convey, e.g., a copy inhibit code, therewith.

U.S. Pat. No. 4,972,471 to Gross discloses a system intended to assistin the automated monitoring of audio (e.g. radio) signals forcopyrighted materials by reference to identification signalssubliminally embedded therein.

U.S. Pat. No. 5,243,423 to DeJean discloses a video steganography systemwhich encodes digital data (e.g. program syndication verification,copyright marking, media research, closed captioning, or like data) ontorandomly selected video lines. DeJean relies on television sync pulsesto trigger a stored pseudo random sequence which is XORed with thedigital data and combined with the video.

European application EP 581,317 discloses a system for redundantlymarking images with multi-bit identification codes. Each "1" ("0") bitof the code is manifested as a slight increase (decrease) in pixelvalues around a plurality of spaced apart "signature points." Decodingproceeds by computing a difference between a suspect image and theoriginal, unencoded image, and checking for pixel perturbations aroundthe signature points.

PCT application WO 95/14289 describes the present applicant's prior workin this field.

Komatsu et al., describe an image marking technique in their paper "AProposal on Digital Watermark in Document Image Communication and ItsApplication to Realizing a Signature," Electronics and Communications inJapan, Part 1, Vol. 73, No. 5, 1990, pp. 22-33. The work is somewhatdifficult to follow but apparently results in a simple yes/nodetermination of whether the watermark is present in a suspect image(e.g. a 1 bit encoded message).

There is a large body of work regarding the embedding of digitalinformation into video signals. Many perform the embedding in thenon-visual portion of the signal such as in the vertical and horizontalblanking intervals, but others embed the information "in-band" (i.e. inthe visible video signal itself). Examples include U.S. Pat. Nos.4,528,588, 4,595,950, and 5,319,453; European application 441,702; andMatsui et. al, "Video-Steganography: How to Secretly Embed a Signaturein a Picture," IMA Intellectual Property Project Proceedings, January1994, Vol. 1, Issue 1, pp. 187-205.

There are various consortium research efforts underway in Europe oncopyright marking of video and multimedia. A survey of techniques isfound in "Access Control and Copyright Protection for Images (ACCOPI),WorkPackage 8: Watermarking," Jun. 30, 1995, 46 pages. A new project,termed TALISMAN, appears to extend certain of the ACCOPI work. Zhao andKoch, researchers active in these projects, provide a Web-basedelectronic media marking service known as Syscop.

Aura reviews many issues of steganography in his paper "InvisibleCommunication," Helskinki University of Technology, Digital SystemsLaboratory, Nov. 5, 1995.

Sandford II, et al. review the operation of their May, 1994, imagesteganography program (BMPEMBED) in "The Data Embedding Method," SPIEVol. 2615, Oct. 23, 1995, pp. 226-259.

A British company, Highwater FBI, Ltd., has introduced a softwareproduct which is said to imperceptibly embed identifying informationinto photographs and other graphical images. This technology is thesubject of European patent applications 9400971.9 (filed Jan. 19, 1994),9504221.2 (filed Mar. 2, 1995), and 9513790.7 (filed Jul. 3, 1995), thefirst of which has been laid open as PCT publication WO 95/20291.

Walter Bender at M.I.T. has done a variety of work in the field, asillustrate by his paper "Techniques for Data Hiding," MassachusettsInstitute of Technology, Media Laboratory, January 1995.

Dice, Inc. of Palo Alto has developed an audio marking technologymarketed under the name Argent. While a U.S. patent application isunderstood to be pending, it has not yet been issued.

Tirkel et al, at Monash University, have published a variety of paperson "electronic watermarking" including, e.g., "Electronic Water Mark,"DICTA-93, Macquarie University, Sydney, Australia, December, 1993,pp.666-673, and "A Digital Watermark," IEEE International Conference onImage Processing, Nov. 13-16, 1994, pp. 86-90.

Cox et al, of the NEC Technical Research Institute, discuss various dataembedding techniques in their published NEC technical report entitled"Secure Spread Spectrum Watermarking for Multimedia," December, 1995.

Moller et al. discuss an experimental system for imperceptibly embeddingauxiliary data on an ISDN circuit in "Rechnergestutzte Steganographie:Wie sie Funktioniert und warum folglich jede Reglementierung vonVerschlusselung unsinnig ist," DuD, Datenschutz und Datensicherung, 18/6(1994) 318-326. The system randomly picks ISDN signal samples to modify,and suspends the auxiliary data transmission for signal samples whichfall below a threshold.

There are a variety of shareware programs available on the internet(e.g. "Stego" and "White Noise Storm") which generally operate byswapping bits from a to-be-concealed message stream into the leastsignificant bits of an image or audio signal. White Noise Storm effectsa randomization of the data to enhance its concealment.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simple and classic depiction of a one dimensional digitalsignal which is discretized in both axes.

FIG. 2 is a general overview, with detailed description of steps, of theprocess of embedding an "imperceptible" identification signal ontoanother signal.

FIG. 3 is a step-wise description of how a suspected copy of an originalis identified.

FIG. 4 is a schematic view of an apparatus for pre-exposing film withidentification information.

FIG. 5 is a diagram of a "black box" embodiment.

FIG. 6 is a schematic block diagram of the embodiment of FIG. 5.

FIG. 7 shows a variant of the FIG. 6 embodiment adapted to encodesuccessive sets of input data with different code words but with thesame noise data.

FIG. 8 shows a variant of the FIG. 6 embodiment adapted to encode eachframe of a videotaped production with a unique code number.

FIGS. 9A-9C are representations of an industry standard noise second.

FIG. 10 shows an integrated circuit used in detecting standard noisecodes.

FIG. 11 shows a process flow for detecting a standard noise code thatcan be used in the FIG. 10 embodiment.

FIG. 12 is an embodiment employing a plurality of detectors.

FIG. 13 shows an embodiment in which a pseudo-random noise frame isgenerated from an image.

FIG. 14 illustrates how statistics of a signal can be used in aid ofdecoding.

FIG. 15 shows how a signature signal can be preprocessed to increase itsrobustness in view of anticipated distortion, e.g. MPEG.

FIGS. 16 and 17 show embodiments in which information about a file isdetailed both in a header, and in the file itself.

FIGS. 18-20 show details relating to embodiments using rotationallysymmetric patterns.

FIGS. 21A and 21B show encoding "bumps" rather than pixels.

FIGS. 22-26 detail aspects of a security card.

FIG. 27 is a diagram illustrating a network linking method usinginformation embedded in data objects that have inherent noise.

FIGS. 27A and 27B show a typical web page, and a step in itsencapsulation into a self extracting web page object.

FIG. 28 is a diagram of a photographic identification document orsecurity card.

FIGS. 29 and 30 illustrate two embodiments by which subliminal digitalgraticules can be realized.

FIG. 29A shows a variation on the FIG. 29 embodiment.

FIGS. 31A and 31B show the phase of spatial frequencies along twoinclined axes.

FIGS. 32A-32C show the phase of spatial frequencies along first, secondand third concentric rings.

FIGS. 33A-33E show steps in the registration process for a subliminalgraticule using inclined axes.

FIGS. 34A-34E show steps in the registration process for a subliminalgraticule using concentric rings.

FIGS. 35A-35C shows further steps in the registration process for asubliminal graticule using inclined axes.

FIGS. 36A-36D show another registration process that does not require a2D FFT.

FIG. 37 is a flow chart summarizing a registration process forsubliminal graticules.

FIG. 38 is a block diagram showing principal components of an exemplarywireless telephony system.

FIG. 39 is a block diagram of an exemplary steganographic encoder thatcan be used in the telephone of the FIG. 38 system.

FIG. 40 is a block diagram of an exemplary steganographic decoder thatcan be used in the cell site of the FIG. 1 system.

FIGS. 41A and 41B show exemplary bit cells used in one form of encoding.

FIG. 42 shows a hierarchical arrangement of signature blocks,sub-blocks, and bit cells used in one embodiment.

FIG. 43 is a general overview of a computer system linked by usinginformation embedded in objects.

FIG. 44 is a representative computer screen generated in accordance withthe present invention.

FIG. 45 is a representative computer screen generated in accordance withthe present invention.

FIG. 46 is a representative computer screen generated in accordance withthe present invention.

FIG. 47 is a representative computer screen generated in accordance withthe present invention.

FIG. 48 is a representative computer screen generated in accordance withthe present invention.

FIG. 49 is a representative computer screen generated in accordance withthe present invention.

FIG. 50 is a representative computer screen generated in accordance withthe present invention.

FIG. 51 is a representative computer screen generated in accordance withthe present invention.

FIG. 52 is a representative computer screen generated in accordance withthe present invention.

FIG. 53 is a representative computer screen generated in accordance withthe present invention.

FIG. 54 is a representative computer screen generated in accordance withthe present invention.

FIG. 55 is a representative computer screen generated in accordance withthe present invention.

FIG. 56 is a representative computer screen generated in accordance withthe present invention.

FIG. 57 is a representative computer screen generated in accordance withthe present invention.

FIG. 58 is a representative computer screen generated in accordance withthe present invention.

FIG. 59 is a representative computer screen generated in accordance withthe present invention.

DETAILED DESCRIPTION

In the following discussion of an illustrative embodiment, the words"signal" and "image" are used interchangeably to refer to both one, two,and even beyond two dimensions of digital signal. Examples willroutinely switch back and forth between a one dimensional audio-typedigital signal and a two dimensional image-type digital signal.

In order to fully describe the details of an illustrative embodiment, itis necessary first to describe the basic properties of a digital signal.FIG. 1 shows a classic representation of a one dimensional digitalsignal. The x-axis defines the index numbers of sequence of digital"samples," and the y-axis is the instantaneous value of the signal atthat sample, being constrained to exist only at a finite number oflevels defined as the "binary depth" of a digital sample. The exampledepicted in FIG. 1 has the value of 2 to the fourth power, or "4 bits,"giving 16 allowed states of the sample value.

For audio information such as sound waves, it is commonly accepted thatthe digitization process discretizes a continuous phenomena both in thetime domain and in the signal level domain. As such, the process ofdigitization itself introduces a fundamental error source, in that itcannot record detail smaller than the discretization interval in eitherdomain. The industry has referred to this, among other ways, as"aliasing" in the time domain, and "quantization noise" in the signallevel domain. Thus, there will always be a basic error floor of adigital signal. Pure quantization noise, measured in a root mean squaresense, is theoretically known to have the value of one over the squareroot of twelve, or about 0.29 DN, where DN stands for `Digital Number`or the finest unit increment of the signal level. For example, a perfect12-bit digitizer will have 4096 allowed DN with an innate root meansquare noise floor of ˜0.29 DN.

All known physical measurement processes add additional noise to thetransformation of a continuous signal into the digital form. Thequantization noise typically adds in quadrature (square root of the meansquares) to the "analog noise" of the measurement process, as it issometimes referred to.

With almost all commercial and technical processes, the use of thedecibel scale is used as a measure of signal and noise in a givenrecording medium. The expression "signal-to-noise ratio" is generallyused, as it will be in this disclosure. As an example, this disclosurerefers to signal to noise ratios in terms of signal power and noisepower, thus 20 dB represents a 10 times increase in signal amplitude.

In summary, this embodiment embeds an N-bit value onto an entire signalthrough the addition of a very low amplitude encodation signal which hasthe look of pure noise. N is usually at least 8 and is capped on thehigher end by ultimate signal-to-noise considerations and "bit error" inretrieving and decoding the N-bit value. As a practical matter, N ischosen based on application specific considerations, such as the numberof unique different "signatures" that are desired. To illustrate, ifN=128, then the number of unique digital signatures is in excess of 1038 (2 128). This number is believed to be more than adequate to bothidentify the material with sufficient statistical certainty and to indexexact sale and distribution information.

The amplitude or power of this added signal is determined by theaesthetic and informational considerations of each and every applicationusing the present methodology. For instance, non-professional video canstand to have a higher embedded signal level without becoming noticeableto the average human eye, while high precision audio may only be able toaccept a relatively small signal level lest the human ear perceive anobjectionable increase in "hiss." These statements are generalities andeach application has its own set of criteria in choosing the signallevel of the embedded identification signal. The higher the level ofembedded signal, the more corrupted a copy can be and still beidentified. On the other hand, the higher the level of embedded signal,the more objectionable the perceived noise might be, potentiallyimpacting the value of the distributed material.

To illustrate the range of different applications to which applicant'stechnology can be applied, the present specification details twodifferent systems. The first (termed, for lack of a better name, a"batch encoding" system), applies identification coding to an existingdata signal. The second (termed, for lack of a better name, a "real timeencoding" system), applies identification coding to a signal as it isproduced. Those skilled in the art will recognize that the principles ofapplicant's technology can be applied in a number of other contexts inaddition to these particularly described.

The discussions of these two systems can be read in either order. Somereaders may find the latter more intuitive than the former; for othersthe contrary may be true.

BATCH ENCODING

The following discussion of a first class of embodiments is bestprefaced by a section defining relevant terms:

The original signal refers to either the original digital signal or thehigh quality digitized copy of a non-digital original.

The N-bit identification word refers to a unique identification binaryvalue, typically having N range anywhere from 8 to 128, which is theidentification code ultimately placed onto the original signal via thedisclosed transformation process. In the illustrated embodiment, eachN-bit identification word begins with the sequence of values `0101,`which is used to determine an optimization of the signal-to-noise ratioin the identification procedure of a suspect signal (see definitionbelow).

The m'th bit value of the N-bit identification word is either a zero orone corresponding to the value of the m'th place, reading left to right,of the N-bit word. E.g., the first (m=1) bit value of the N=8identification word 01110100 is the value `0;` the second bit value ofthis identification word is `1`, etc.

The m'th individual embedded code signal refers to a signal which hasdimensions and extent precisely equal to the original signal (e.g. bothare a 512 by 512 digital image), and which is (in the illustratedembodiment) an independent pseudo-random sequence of digital values."Pseudo" pays homage to the difficulty in philosophically defining purerandomness, and also indicates that there are various acceptable ways ofgenerating the "random" signal. There will be exactly N individualembedded code signals associated with any given original signal.

The acceptable perceived noise level refers to an application-specificdetermination of how much "extra noise," i.e. amplitude of the compositeembedded code signal described next, can be added to the original signaland still have an acceptable signal to sell or otherwise distribute.This disclosure uses a 1 dB increase in noise as a typical value whichmight be acceptable, but this is quite arbitrary.

The composite embedded code signal refers to the signal which hasdimensions and extent precisely equal to the original signal, (e.g. bothare a 512 by 512 digital image), and which contains the addition andappropriate attenuation of the N individual embedded code signals. Theindividual embedded signals are generated on an arbitrary scale, whereasthe amplitude of the composite signal must not exceed the pre-setacceptable perceived noise level, hence the need for "attenuation" ofthe N added individual code signals.

The distributable signal refers to the nearly similar copy of theoriginal signal, consisting of the original signal plus the compositeembedded code signal. This is the signal which is distributed to theoutside community, having only slightly higher but acceptable "noiseproperties" than the original.

A suspect signal refers to a signal which has the general appearance ofthe original and distributed signal and whose potential identificationmatch to the original is being questioned. The suspect signal is thenanalyzed to see if it matches the N-bit identification word.

The detailed methodology of this first embodiment begins by stating thatthe N-bit identification word is encoded onto the original signal byhaving each of the m bit values multiply their corresponding individualembedded code signals, the resultant being accumulated in the compositesignal, the fully summed composite signal then being attenuated down tothe acceptable perceived noise amplitude, and the resultant compositesignal added to the original to become the distributable signal.

The original signal, the N-bit identification word, and all N individualembedded code signals are then stored away in a secured place. A suspectsignal is then found. This signal may have undergone multiple copies,compressions and decompressions, resamplings onto different spaceddigital signals, transfers from digital to analog back to digital media,or any combination of these items. IF the signal still appears similarto the original, i.e. its innate quality is not thoroughly destroyed byall of these transformations and noise additions, then depending on thesignal to noise properties of the embedded signal, the identificationprocess should function to some objective degree of statisticalconfidence. The extent of corruption of the suspect signal and theoriginal acceptable perceived noise level are two key parameters indetermining an expected confidence level of identification.

The identification process on the suspected signal begins by resamplingand aligning the suspected signal onto the digital format and extent ofthe original signal. Thus, if an image has been reduced by a factor oftwo, it needs to be digitally enlarged by that same factor. Likewise, ifa piece of music has been "cut out," but may still have the samesampling rate as the original, it is necessary to register this cut-outpiece to the original, typically done by performing a local digitalcross-correlation of the two signals (a common digital operation),finding at what delay value the correlation peaks, then using this founddelay value to register the cut piece to a segment of the original.

Once the suspect signal has been sample-spacing matched and registeredto the original, the signal levels of the suspect signal should bematched in an rms sense to the signal level of the original. This can bedone via a search on the parameters of offset, amplification, and gammabeing optimized by using the minimum of the mean squared error betweenthe two signals as a function of the three parameters. We can call thesuspect signal normalized and registered at this point, or justnormalized for convenience.

The newly matched pair then has the original signal subtracted from thenormalized suspect signal to produce a difference signal. The differencesignal is then cross-correlated with each of the N individual embeddedcode signals and the peak cross-correlation value recorded. The firstfour bit code (`0101`) is used as a calibrator both on the mean valuesof the zero value and the one value, and on further registration of thetwo signals if a finer signal to noise ratio is desired (i.e., theoptimal separation of the 0101 signal will indicate an optimalregistration of the two signals and will also indicate the probableexistence of the N-bit identification signal being present.)

The resulting peak cross-correlation values will form a noisy series offloating point numbers which can be transformed into 0's and 1's bytheir proximity to the mean values of 0 and 1 found by the 0101calibration sequence. If the suspect signal has indeed been derived fromthe original, the identification number resulting from the above processwill match the N-bit identification word of the original, bearing inmind either predicted or unknown "bit error" statistics. Signal-to-noiseconsiderations will determine if there will be some kind of "bit error"in the identification process, leading to a form of X% probability ofidentification where X might be desired to be 99.9% or whatever. If thesuspect copy is indeed not a copy of the original, an essentially randomsequence of 0's and 1's will be produced, as well as an apparent lack ofseparation of the resultant values. This is to say, if the resultantvalues are plotted on a histogram, the existence of the N-bitidentification signal will exhibit strong bi-level characteristics,whereas the non-existence of the code, or the existence of a differentcode of a different original, will exhibit a type of randomgaussian-like distribution. This histogram separation alone should besufficient for an identification, but it is even stronger proof ofidentification when an exact binary sequence can be objectivelyreproduced.

SPECIFIC EXAMPLE

Imagine that we have taken a valuable picture of two heads of state at acocktail party, pictures which are sure to earn some reasonable fee inthe commercial market. We desire to sell this picture and ensure that itis not used in an unauthorized or uncompensated manner. This and thefollowing steps are summarized in FIG. 2.

Assume the picture is transformed into a positive color print. We firstscan this into a digitized form via a normal high quality black andwhite scanner with a typical photometric spectral response curve. (It ispossible to get better ultimate signal to noise ratios by scanning ineach of the three primary colors of the color image, but this nuance isnot central to describing the basic process.)

Let us assume that the scanned image now becomes a 4000 by 4000 pixelmonochrome digital image with a grey scale accuracy defined by 12-bitgrey values or 4096 allowed levels. We will call this the "originaldigital image" realizing that this is the same as our "original signal"in the above definitions.

During the scanning process we have arbitrarily set absolute black tocorrespond to digital value `30`. We estimate that there is a basic 2Digital Number root mean square noise existing on the original digitalimage, plus a theoretical noise (known in the industry as "shot noise")of the square root of the brightness value of any given pixel. Informula, we have:

    <RMS Noise.sub.n,m >=sqrt(4+(V.sub.nm -30))                (1)

Here, n and m are simple indexing values on rows and columns of theimage ranging from 0 to 3999. Sqrt is the square root. V is the DN of agiven indexed pixel on the original digital image. The < > bracketsaround the RMS noise merely indicates that this is an expected averagevalue, where it is clear that each and every pixel will have a randomerror individually. Thus, for a pixel value having 1200 as a digitalnumber or "brightness value", we find that its expected rms noise valueis sqrt(1204)=34.70, which is quite close to 34.64, the square root of1200.

We furthermore realize that the square root of the innate brightnessvalue of a pixel is not precisely what the eye perceives as a minimumobjectionable noise, thus we come up with the formula:

    <RMS Addable Noise.sub.n,m >=X*sqrt(4+(V.sub.n,m -30) Y)   (2)

Where X and Y have been added as empirical parameters which we willadjust, and "addable" noise refers to our acceptable perceived noiselevel from the definitions above. We now intend to experiment with whatexact value of X and Y we can choose, but we will do so at the same timethat we are performing the next steps in the process.

The next step in our process is to choose N of our N-bit identificationword. We decide that a 16 bit main identification value with its 65536possible values will be sufficiently large to identify the image asours, and that we will be directly selling no more than 128 copies ofthe image which we wish to track, giving 7 bits plus an eighth bit foran odd/even adding of the first 7 bits (i.e. an error checking bit onthe first seven). The total bits required now are at 4 bits for the 0101calibration sequence, 16 for the main identification, 8 for the version,and we now throw in another 4 as a further error checking value on thefirst 28 bits, giving 32 bits as N. The final 4 bits can use one of manyindustry standard error checking methods to choose its four values.

We now randomly determine the 16 bit main identification number, findingfor example, 1101 0001 1001 1110; our first versions of the originalsold will have all 0's as the version identifier, and the error checkingbits will fall out where they may. We now have our unique 32 bitidentification word which we will embed on the original digital image.

To do this, we generate 32 independent random 4000 by 4000 encodingimages for each bit of our 32 bit identification word. The manner ofgenerating these random images is revealing. There are numerous ways togenerate these. By far the simplest is to turn up the gain on the samescanner that was used to scan in the original photograph, only this timeplacing a pure black image as the input, then scanning this 32 times.The only drawback to this technique is that it does require a largeamount of memory and that "fixed pattern" noise will be part of eachindependent "noise image." But, the fixed pattern noise can be removedvia normal "dark frame" subtraction techniques. Assume that we set theabsolute black average value at digital number `100,` and that ratherthan finding a 2 DN rms noise as we did in the normal gain setting, wenow find an rms noise of 10 DN about each and every pixel's mean value.

We next apply a mid-spatial-frequency bandpass filter (spatialconvolution) to each and every independent random image, essentiallyremoving the very high and the very low spatial frequencies from them.We remove the very low frequencies because simple real-world errorsources like geometrical warping, splotches on scanners,mis-registrations, and the like will exhibit themselves most at lowerfrequencies also, and so we want to concentrate our identificationsignal at higher spatial frequencies in order to avoid these types ofcorruptions. Likewise, we remove the higher frequencies because multiplegeneration copies of a given image, as well as compression-decompressiontransformations, tend to wipe out higher frequencies anyway, so there isno point in placing too much identification signal into thesefrequencies if they will be the ones most prone to being attenuated.Therefore, our new filtered independent noise images will be dominatedby mid-spatial frequencies. On a practical note, since we are using12-bit values on our scanner and we have removed the DC valueeffectively and our new rms noise will be slightly less than 10 digitalnumbers, it is useful to boil this down to a 6-bit value ranging from-32 through 0 to 31 as the resultant random image.

Next we add all of the random images together which have a `1` in theircorresponding bit value of the 32-bit identification word, accumulatingthe result in a 16-bit signed integer image. This is the unattenuatedand un-scaled version of the composite embedded signal.

Next we experiment visually with adding the composite embedded signal tothe original digital image, through varying the X and Y parameters ofequation 2. In formula, we visually iterate to both maximize X and tofind the appropriate Y in the following:

    V.sub.dist;n,m =V.sub.orig;n,m +V.sub.comp;n,m *X*sqrt(4+V.sub.orig;n,m Y)(3)

where dist refers to the candidate distributable image, i.e. we arevisually iterating to find what X and Y will give us an acceptableimage; orig refers to the pixel value of the original image; and comprefers to the pixel value of the composite image. The n's and m's stillindex rows and columns of the image and indicate that this operation isdone on all 4000 by 4000 pixels. The symbol V is the DN of a given pixeland a given image.

As an arbitrary assumption, now, we assume that our visualexperimentation has found that the value of X=0.025 and Y=0.6 areacceptable values when comparing the original image with the candidatedistributable image. This is to say, the distributable image with the"extra noise" is acceptably close to the original in an aesthetic sense.Note that since our individual random images had a random rms noisevalue around 10 DN, and that adding approximately 16 of these imagestogether will increase the composite noise to around 40 DN, the Xmultiplication value of 0.025 will bring the added rms noise back toaround 1 DN, or half the amplitude of our innate noise on the original.This is roughly a 1 dB gain in noise at the dark pixel values andcorrespondingly more at the brighter values modified by the Y value of0.6.

So with these two values of X and Y, we now have constructed our firstversions of a distributable copy of the original. Other versions willmerely create a new composite signal and possibly change the X slightlyif deemed necessary. We now lock up the original digital image alongwith the 32-bit identification word for each version, and the 32independent random 4-bit images, waiting for our first case of asuspected piracy of our original. Storage wise, this is about 14Megabytes for the original image and 32*0.5bytes*16 million=˜256Megabytes for the random individual encoded images. This is quiteacceptable for a single valuable image. Some storage economy can begained by simple lossless compression.

Finding a Suspected Piracy of our Image

We sell our image and several months later find our two heads of statein the exact poses we sold them in, seemingly cut and lifted out of ourimage and placed into another stylized background scene. This new"suspect" image is being printed in 100,000 copies of a given magazineissue, let us say. We now go about determining if a portion of ouroriginal image has indeed been used in an unauthorized manner. FIG. 3summarizes the details.

The first step is to take an issue of the magazine, cut out the pagewith the image on it, then carefully but not too carefully cut out thetwo figures from the background image using ordinary scissors. Ifpossible, we will cut out only one connected piece rather than the twofigures separately. We paste this onto a black background and scan thisinto a digital form. Next we electronically flag or mask out the blackbackground, which is easy to do by visual inspection.

We now procure the original digital image from our secured place alongwith the 32-bit identification word and the 32 individual embeddedimages. We place the original digital image onto our computer screenusing standard image manipulation software, and we roughly cut along thesame borders as our masked area of the suspect image, masking this imageat the same time in roughly the same manner. The word `roughly` is usedsince an exact cutting is not needed, it merely aids the identificationstatistics to get it reasonably close.

Next we rescale the masked suspect image to roughly match the size ofour masked original digital image, that is, we digitally scale up ordown the suspect image and roughly overlay it on the original image.Once we have performed this rough registration, we then throw the twoimages into an automated scaling and registration program. The programperforms a search on the three parameters of x position, y position, andspatial scale, with the figure of merit being the mean squared errorbetween the two images given any given scale variable and x and yoffset. This is a fairly standard image processing methodology.Typically this would be done using generally smooth interpolationtechniques and done to sub-pixel accuracy. The search method can be oneof many, where the simplex method is a typical one.

Once the optimal scaling and x-y position variables are found, nextcomes another search on optimizing the black level, brightness gain, andgamma of the two images. Again, the figure of merit to be used is meansquared error, and again the simplex or other search methodologies canbe used to optimize the three variables. After these three variables areoptimized, we apply their corrections to the suspect image and align itto exactly the pixel spacing and masking of the original digital imageand its mask. We can now call this the standard mask.

The next step is to subtract the original digital image from the newlynormalized suspect image only within the standard mask region. This newimage is called the difference image.

Then we step through all 32 individual random embedded images, doing alocal cross-correlation between the masked difference image and themasked individual embedded image. `Local` refers to the idea that oneneed only start correlating over an offset region of +/-1 pixels ofoffset between the nominal registration points of the two images foundduring the search procedures above. The peak correlation should be veryclose to the nominal registration point of 0,0 offset, and we can addthe 3 by 3 correlation values together to give one grand correlationvalue for each of the 32 individual bits of our 32-bit identificationword.

After doing this for all 32 bit places and their corresponding randomimages, we have a quasi-floating point sequence of 32 values. The firstfour values represent our calibration signal of 0101. We now take themean of the first and third floating point value and call this floatingpoint value `0,` and we take the mean of the second and the fourth valueand call this floating point value `1.` We then step through allremaining 28 bit values and assign either a `0` or a `1` based simply onwhich mean value they are closer to. Stated simply, if the suspect imageis indeed a copy of our original, the embedded 32-bit resulting codeshould match that of our records, and if it is not a copy, we should getgeneral randomness. The third and the fourth possibilities of 3) Is acopy but doesn't match identification number and 4) isn't a copy butdoes match are, in the case of 3), possible if the signal to noise ratioof the process has plummeted, i.e. the `suspect image` is truly a verypoor copy of the original, and in the case of 4) is basically one chancein four billion since we were using a 32-bit identification number. Ifwe are truly worried about 4), we can just have a second independent labperform their own tests on a different issue of the same magazine.Finally, checking the error-check bits against what the values give isone final and possibly overkill check on the whole process. Insituations where signal to noise is a possible problem, these errorchecking bits might be eliminated without too much harm.

Benefits

Now that a full description of the first embodiment has been describedvia a detailed example, it is appropriate to point out the rationale ofsome of the process steps and their benefits.

The ultimate benefits of the foregoing process are that obtaining anidentification number is fully independent of the manners and methods ofpreparing the difference image. That is to say, the manners of preparingthe difference image, such as cutting, registering, scaling, etcetera,cannot increase the odds of finding an identification number when noneexists; it only helps the signal-to-noise ratio of the identificationprocess when a true identification number is present. Methods ofpreparing images for identification can be different from each othereven, providing the possibility for multiple independent methodologiesfor making a match.

The ability to obtain a match even on sub-sets of the original signal orimage is a key point in today's information-rich world. Cutting andpasting both images and sound clips is becoming more common, allowingsuch an embodiment to be used in detecting a copy even when originalmaterial has been thus corrupted. Finally, the signal to noise ratio ofmatching should begin to become difficult only when the copy materialitself has been significantly altered either by noise or by significantdistortion; both of these also will affect that copy's commercial value,so that trying to thwart the system can only be done at the expense of ahuge decrease in commercial value.

An early conception of this technology was the case where only a single"snowy image" or random signal was added to an original image, i.e. thecase where N=1. "Decoding" this signal would involve a subsequentmathematical analysis using (generally statistical) algorithms to make ajudgment on the presence or absence of this signal. The reason thisapproach was abandoned as the preferred embodiment was that there was aninherent gray area in the certainty of detecting the presence or absenceof the signal. By moving onward to a multitude of bit planes, i.e. N>1,combined with simple pre-defined algorithms prescribing the manner ofchoosing between a "0" and a "1", the certainty question moved from therealm of expert statistical analysis into the realm of guessing a randombinary event such as a coin flip. This is seen as a powerful featurerelative to the intuitive acceptance of this technology in both thecourtroom and the marketplace. The analogy which summarizes theinventor's thoughts on this whole question is as follows: The search fora single identification signal amounts to calling a coin flip only once,and relying on arcane experts to make the call; whereas the N>1embodiment relies on the broadly intuitive principle of correctlycalling a coin flip N times in a row. This situation is greatlyexacerbated, i.e. the problems of "interpretation" of the presence of asingle signal, when images and sound clips get smaller and smaller inextent.

Another important reason that the N>1 case is preferred over the N=1embodiment is that in the N=1 case, the manner in which a suspect imageis prepared and manipulated has a direct bearing on the likelihood ofmaking a positive identification. Thus, the manner with which an expertmakes an identification determination becomes an integral part of thatdetermination. The existence of a multitude of mathematical andstatistical approaches to making this determination leave open thepossibility that some tests might make positive identifications whileothers might make negative determinations, inviting further arcanedebate about the relative merits of the various identificationapproaches. The N>1 embodiment avoids this further gray area bypresenting a method where no amount of pre-processing of a signal--otherthan pre-processing which surreptitiously uses knowledge of the privatecode signals--can increase the likelihood of "calling the coin flip Ntimes in a row."

The fullest expression of the present system will come when it becomesan industry standard and numerous independent groups set up with theirown means or `in-house` brand of applying embedded identificationnumbers and in their decipherment. Numerous independent groupidentification will further enhance the ultimate objectivity of themethod, thereby enhancing its appeal as an industry standard.

Use of True Polarity in Creating the Composite Embedded Code Signal

The foregoing discussion made use of the 0 and 1 formalism of binarytechnology to accomplish its ends. Specifically, the 0's and 1's of theN-bit identification word directly multiplied their correspondingindividual embedded code signal to form the composite embedded codesignal (step 8, FIG. 2). This approach certainly has its conceptualsimplicity, but the multiplication of an embedded code signal by 0 alongwith the storage of that embedded code contains a kind of inefficiency.

It is preferred to maintain the formalism of the 0 and 1 nature of theN-bit identification word, but to have the 0's of the word induce asubtraction of their corresponding embedded code signal. Thus, in step 8of FIG. 2, rather than only `adding` the individual embedded codesignals which correspond to a `1` in the N-bit identification word, wewill also `subtract` the individual embedded code signals whichcorrespond to a `0` in the N-bit identification word.

At first glance this seems to add more apparent noise to the finalcomposite signal. But it also increases the energy-wise separation ofthe 0's from the 1's, and thus the `gain` which is applied in step 10,FIG. 2 can be correspondingly lower.

We can refer to this improvement as the use of true polarity. The mainadvantage of this improvement can largely be summarized as`informational efficiency.`

`Perceptual Orthogonality` of the Individual Embedded Code Signals

The foregoing discussion contemplates the use of generally randomnoise-like signals as the individual embedded code signals. This isperhaps the simplest form of signal to generate. However, there is aform of informational optimization which can be applied to the set ofthe individual embedded signals, which the applicant describes under therubric `perceptual orthogonality.` This term is loosely based on themathematical concept of the orthogonality of vectors, with the currentadditional requirement that this orthogonality should maximize thesignal energy of the identification information while maintaining itbelow some perceptibility threshold. Put another way, the embedded codesignals need not necessarily be random in nature.

Use and Improvements of the First Embodiment in the Field ofEmulsion-Based Photography

The foregoing discussion outlined techniques that are applicable tophotographic materials. The following section explores the details ofthis area further and discloses certain improvements which lendthemselves to a broad range of applications.

The first area to be discussed involves the pre-application orpre-exposing of a serial number onto traditional photographic products,such as negative film, print paper, transparencies, etc. In general,this is a way to embed a priori unique serial numbers (and byimplication, ownership and tracking information) into photographicmaterial. The serial numbers themselves would be a permanent part of thenormally exposed picture, as opposed to being relegated to the marginsor stamped on the back of a printed photograph, which all requireseparate locations and separate methods of copying. The `serial number`as it is called here is generally synonymous with the N-bitidentification word, only now we are using a more common industrialterminology.

In FIG. 2, step 11, the disclosure calls for the storage of the"original [image]" along with code images. Then in FIG. 3, step 9, itdirects that the original be subtracted from the suspect image, therebyleaving the possible identification codes plus whatever noise andcorruption has accumulated. Therefore, the previous disclosure made thetacit assumption that there exists an original without the compositeembedded signals.

Now in the case of selling print paper and other duplication filmproducts, this will still be the case, i.e., an "original" without theembedded codes will indeed exist and the basic methodology of the firstembodiment can be employed. The original film serves perfectly well asan `unencoded original.` However, in the case where pre-exposed negativefilm is used, the composite embedded signal pre-exists on the originalfilm and thus there will never be an "original" separate from thepre-embedded signal. It is this latter case, therefore, which will beexamined a bit more closely, along with observations on how to best usethe principles discussed above (the former cases adhering to thepreviously outlined methods).

The clearest point of departure for the case of pre-numbered negativefilm, i.e. negative film which has had each and every frame pre-exposedwith a very faint and unique composite embedded signal, comes at step 9of FIG. 3 as previously noted. There are certainly other differences aswell, but they are mostly logistical in nature, such as how and when toembed the signals on the film, how to store the code numbers and serialnumber, etc. Obviously the pre-exposing of film would involve a majorchange to the general mass production process of creating and packagingfilm.

FIG. 4 has a schematic outlining one potential post-hoc mechanism forpre-exposing film. `Post-hoc` refers to applying a process after thefull common manufacturing process of film has already taken place.Eventually, economies of scale may dictate placing this pre-exposingprocess directly into the chain of manufacturing film. Depicted in FIG.4 is what is commonly known as a film writing system. The computer, 106,displays the composite signal produced in step 8, FIG. 2, on itsphosphor screen. A given frame of film is then exposed by imaging thisphosphor screen, where the exposure level is generally very faint, i.e.generally imperceptible. Clearly, the marketplace will set its owndemands on how faint this should be, that is, the level of added`graininess` as practitioners would put it. Each frame of film issequentially exposed, where in general the composite image displayed onthe CRT 102 is changed for each and every frame, thereby giving eachframe of film a different serial number. The transfer lens 104highlights the focal conjugate planes of a film frame and the CRT face.

Getting back to the applying the principles of the foregoing embodimentin the case of pre-exposed negative film . . . At step 9, FIG. 3, if wewere to subtract the "original" with its embedded code, we wouldobviously be "erasing" the code as well since the code is an integralpart of the original. Fortunately, remedies do exist and identificationscan still be made. However, it will be a challenge to artisans whorefine this embodiment to have the signal to noise ratio of theidentification process in the pre-exposed negative case approach thesignal to noise ratio of the case where the unencoded original exists.

A succinct definition of the problem is in order at this point. Given asuspect picture (signal), find the embedded identification code IF acode exists at al. The problem reduces to one of finding the amplitudeof each and every individual embedded code signal within the suspectpicture, not only within the context of noise and corruption as waspreviously explained, but now also within the context of the couplingbetween a captured image and the codes. `Coupling` here refers to theidea that the captured image "randomly biases" the cross-correlation.

So, bearing in mind this additional item of signal coupling, theidentification process now estimates the signal amplitude of each andevery individual embedded code signal (as opposed to taking thecross-correlation result of step 12, FIG. 3). If our identificationsignal exists in the suspect picture, the amplitudes thus found willsplit into a polarity with positive amplitudes being assigned a `1` andnegative amplitudes being assigned a `0`. Our unique identification codemanifests itself. If, on the other hand, no such identification codeexists or it is someone else's code, then a random gaussian-likedistribution of amplitudes is found with a random hash of values.

It remains to provide a few more details on how the amplitudes of theindividual embedded codes are found. Again, fortunately, this exactproblem has been treated in other technological applications. Besides,throw this problem and a little food into a crowded room ofmathematicians and statisticians and surely a half dozen optimizedmethodologies will pop out after some reasonable period of time. It is arather cleanly defined problem.

One specific example solution comes from the field of astronomicalimaging. Here, it is a mature prior art to subtract out a "thermal noiseframe" from a given CCD image of an object. Often, however, it is notprecisely known what scaling factor to use in subtracting the thermalframe, and a search for the correct scaling factor is performed. This isprecisely the task of this step of the present embodiment.

General practice merely performs a common search algorithm on thescaling factor, where a scaling factor is chosen and a new image iscreated according to:

    NEW IMAGE=ACQUIRED IMAGE-SCALE*THERMAL IMAGE               (4)

The new image is applied to the fast fourier transform routine and ascale factor is eventually found which minimizes the integrated highfrequency content of the new image. This general type of searchoperation with its minimization of a particular quantity is exceedinglycommon. The scale factor thus found is the sought-for "amplitude."Refinements which are contemplated but not yet implemented are where thecoupling of the higher derivatives of the acquired image and theembedded codes are estimated and removed from the calculated scalefactor. In other words, certain bias effects from the coupling mentionedearlier are present and should be eventually accounted for and removedboth through theoretical and empirical experimentation.

Use and Improvements in the Detection of Signal or Image Alteration

Apart from the basic need of identifying a signal or image as a whole,there is also a rather ubiquitous need to detect possible alterations toa signal or image. The following section describes how the foregoingembodiment, with certain modifications and improvements, can be used asa powerful tool in this area. The potential scenarios and applicationsof detecting alterations are innumerable.

To first summarize, assume that we have a given signal or image whichhas been positively identified using the basic methods outlined above.In other words, we know its N-bit identification word, its individualembedded code signals, and its composite embedded code. We can thenfairly simply create a spatial map of the composite code's amplitudewithin our given signal or image. Furthermore, we can divide thisamplitude map by the known composite code's spatial amplitude, giving anormalized map, i.e. a map which should fluctuate about some global meanvalue. By simple examination of this map, we can visually detect anyareas which have been significantly altered wherein the value of thenormalized amplitude dips below some statistically set threshold basedpurely on typical noise and corruption (error).

The details of implementing the creation of the amplitude map have avariety of choices. One is to perform the same procedure which is usedto determine the signal amplitude as described above, only now we stepand repeat the multiplication of any given area of the signal/image witha gaussian weight function centered about the area we are investigating.

Universal Versus Custom Codes

The disclosure thus far has outlined how each and every source signalhas its own unique set of individual embedded code signals. This entailsthe storage of a significant amount of additional code information aboveand beyond the original, and many applications may merit some form ofeconomizing.

One such approach to economizing is to have a given set of individualembedded code signals be common to a batch of source materials. Forexample, one thousand images can all utilize the same basic set ofindividual embedded code signals. The storage requirements of thesecodes then become a small fraction of the overall storage requirementsof the source material.

Furthermore, some applications can utilize a universal set of individualembedded code signals, i.e., codes which remain the same for allinstances of distributed material. This type of requirement would beseen by systems which wish to hide the N-bit identification word itself,yet have standardized equipment be able to read that word. This can beused in systems which make go/no go decisions at point-of-readlocations. The potential drawback to this set-up is that the universalcodes are more prone to be sleuthed or stolen; therefore they will notbe as secure as the apparatus and methodology of the previouslydisclosed arrangement. Perhaps this is just the difference between `highsecurity` and `air-tight security,` a distinction carrying little weightwith the bulk of potential applications.

Use in Printing, Paper, Documents, Plastic Coated Identification Cards,and Other Material Where Global Embedded Codes Can Be Imprinted

The term `signal` is often used narrowly to refer to digital datainformation, audio signals, images, etc. A broader interpretation of`signal,` and the one more generally intended, includes any form ofmodulation of any material whatsoever. Thus, the micro-topology of apiece of common paper becomes a `signal` (e.g. it height as a functionof x-y coordinates). The reflective properties of a flat piece ofplastic (as a function of space also) becomes a signal. The point isthat photographic emulsions, audio signals, and digitized informationare not the only types of signals capable of utilizing the principlesdescribed herein.

As a case in point, a machine very much resembling a braille printingmachine can be designed so as to imprint unique `noise-like`indentations as outlined above. These indentations can be applied with apressure which is much smaller than is typically applied in creatingbraille, to the point where the patterns are not noticed by a normaluser of the paper. But by following the steps of the present disclosureand applying them via the mechanism of micro-indentations, a uniqueidentification code can be placed onto any given sheet of paper, be itintended for everyday stationary purposes, or be it for importantdocuments, legal tender, or other secured material.

The reading of the identification material in such an embodimentgenerally proceeds by merely reading the document optically at a varietyof angles. This would become an inexpensive method for deducing themicro-topology of the paper surface. Certainly other forms of readingthe topology of the paper are possible as well.

In the case of plastic encased material such as identification cards,e.g. driver's licenses, a similar braille-like impressions machine canbe utilized to imprint unique identification codes. Subtle layers ofphotoreactive materials can also be embedded inside the plastic and`exposed.`

It is clear that wherever a material exists which is capable of beingmodulated by `noise-like` signals, that material is an appropriatecarrier for unique identification codes and utilization of theprinciples disclosed herein. All that remains is the matter ofeconomically applying the identification information and maintaining thesignal level below an acceptability threshold which each and everyapplication will define for itself.

REAL TIME ENCODER

While the first class of embodiments most commonly employs a standardmicroprocessor or computer to perform the encodation of an image orsignal, it is possible to utilize a custom encodation device which maybe faster than a typical Von Neuman-type processor. Such a system can beutilized with all manner of serial data streams.

Music and videotape recordings are examples of serial data streams--datastreams which are often pirated. It would assist enforcement efforts ifauthorized recordings were encoded with identification data so thatpirated knock-offs could be traced to the original from which they weremade.

Piracy is but one concern driving the need for applicant's technology.Another is authentication. Often it is important to confirm that a givenset of data is really what it is purported to be (often several yearsafter its generation).

To address these and other needs, the system 200 of FIG. 5 can beemployed. System 200 can be thought of as an identification coding blackbox 202. The system 200 receives an input signal (sometimes termed the"master" or "unencoded" signal) and a code word, and produces (generallyin real time) an identification-coded output signal. (Usually, thesystem provides key data for use in later decoding.)

The contents of the "black box" 202 can take various forms. An exemplaryblack box system is shown in FIG. 6 and includes a look-up table 204, adigital noise source 206, first and second scalers 208, 210, anadder/subtracter 212, a memory 214, and a register 216.

The input signal (which in the illustrated embodiment is an 8-20 bitdata signal provided at a rate of one million samples per second, butwhich in other embodiments could be an analog signal if appropriate A/Dand D/A conversion is provided) is applied from an input 218 to theaddress input 220 of the look-up table 204. For each input sample (i.e.look-up table address), the table provides a corresponding 8-bit digitaloutput word. This output word is used as a scaling factor that isapplied to one input of the first scaler 208.

The first scaler 208 has a second input, to which is applied an 8-bitdigital noise signal from source 206. (In the illustrated embodiment,the noise source 206 comprises an analog noise source 222 and ananalog-to-digital converter 224 although, again, other implementationscan be used.) The noise source in the illustrated embodiment has a zeromean output value, with a full width half maximum (FWHM) of 50-100digital numbers (e.g. from -75 to +75).

The first scaler 208 multiplies the two 8-bit words at its inputs (scalefactor and noise) to produce--for each sample of the system inputsignal--a 16-bit output word. Since the noise signal has a zero meanvalue, the output of the first scaler likewise has a zero mean value.

The output of the first scaler 208 is applied to the input of the secondscaler 210. The second scaler serves a global scaling function,establishing the absolute magnitude of the identification signal thatwill ultimately be embedded into the input data signal. The scalingfactor is set through a scale control device 226 (which may take anumber of forms, from a simple rheostat to a graphically implementedcontrol in a graphical user interface), permitting this factor to bechanged in accordance with the requirements of different applications.The second scaler 210 provides on its output line 228 a scaled noisesignal. Each sample of this scaled noise signal is successively storedin the memory 214.

(In the illustrated embodiment, the output from the first scaler 208 mayrange between -1500 and +1500 (decimal), while the output from thesecond scaler 210 is in the low single digits, (such as between -2 and+2).)

Register 216 stores a multi-bit identification code word. In theillustrated embodiment this code word consists of 8 bits, althoughlarger code words (up to hundreds of bits) are commonly used. These bitsare referenced, one at a time, to control how the input signal ismodulated with the scaled noise signal.

In particular, a pointer 230 is cycled sequentially through the bitpositions of the code word in register 216 to provide a control bit of"0" or "1" to a control input 232 of the adder/subtracter 212. If, for aparticular input signal sample, the control bit is a "1", the scalednoise signal sample on line 232 is added to the input signal sample. Ifthe control bit is a "0", the scaled noise signal sample is subtractedfrom the input signal sample. The output 234 from the adder/subtracter212 provides the black box's output signal.

The addition or subtraction of the scaled noise signal in accordancewith the bits of the code word effects a modulation of the input signalthat is generally imperceptible. However, with knowledge of the contentsof the memory 214, a user can later decode the encoding, determining thecode number used in the original encoding process. (Actually, use ofmemory 214 is optional, as explained below.)

It will be recognized that the encoded signal can be distributed in wellknown ways, including converted to printed image form, stored onmagnetic media (floppy diskette, analog or DAT tape, etc.), CD-ROM, etc.etc.

Decoding

A variety of techniques can be used to determine the identification codewith which a suspect signal has been encoded. Two are discussed below.The first is less preferable than the latter for most applications, butis discussed herein so that the reader may have a fuller context withinwhich to understand the disclosed technology.

More particularly, the first decoding method is a difference method,relying on subtraction of corresponding samples of the original signalfrom the suspect signal to obtain difference samples, which are thenexamined (typically individually) for deterministic coding indicia (i.e.the stored noise data). This approach may thus be termed a"sample-based, deterministic" decoding technique.

The second decoding method does not make use of the original signal. Nordoes it examine particular samples looking for predetermined noisecharacteristics. Rather, the statistics of the suspect signal (or aportion thereof) are considered in the aggregate and analyzed to discernthe presence of identification coding that permeates the entire signal.The reference to permeation means the entire identification code can bediscerned from a small fragment of the suspect signal. This latterapproach may thus be termed a "holographic, statistical" decodingtechnique.

Both of these methods begin by registering the suspect signal to matchthe original. This entails scaling (e.g. in amplitude, duration, colorbalance, etc.), and sampling (or resampling) to restore the originalsample rate. As in the earlier described embodiment, there are a varietyof well understood techniques by which the operations associated withthis registration function can be performed.

As noted, the first decoding approach proceeds by subtracting theoriginal signal from the registered, suspect signal, leaving adifference signal. The polarity of successive difference signal samplescan then be compared with the polarities of the corresponding storednoise signal samples to determine the identification code. That is, ifthe polarity of the first difference signal sample matches that of thefirst noise signal sample, then the first bit of the identification codeis a "1." (In such case, the polarity of the 9th, 17th, 25th, etc.samples should also all be positive.) If the polarity of the firstdifference signal sample is opposite that of the corresponding noisesignal sample, then the first bit of the identification code is a "0."

By conducting the foregoing analysis with eight successive samples ofthe difference signal, the sequence of bits that comprise the originalcode word can be determined. If, as in the illustrated embodiment,pointer 230 stepped through the code word one bit at a time, beginningwith the first bit, during encoding, then the first 8 samples of thedifference signal can be analyzed to uniquely determine the value of the8-bit code word.

In a noise-free world (speaking here of noise independent of that withwhich the identification coding is effected), the foregoing analysiswould always yield the correct identification code. But a process thatis only applicable in a noise-free world is of limited utility indeed.

(Further, accurate identification of signals in noise-free contexts canbe handled in a variety of other, simpler ways: e.g. checksums;statistically improbable correspondence between suspect and originalsignals; etc.)

While noise-induced aberrations in decoding can be dealt with--to somedegree--by analyzing large portions of the signal, such aberrationsstill place a practical ceiling on the confidence of the process.Further, the villain that must be confronted is not always as benign asrandom noise. Rather, it increasingly takes the form of human-causedcorruption, distortion, manipulation, etc. In such cases, the desireddegree of identification confidence can only be achieved by otherapproaches.

The illustrated embodiment (the "holographic, statistical" decodingtechnique) relies on recombining the suspect signal with certain noisedata (typically the data stored in memory 214), and analyzing theentropy of the resulting signal. "Entropy" need not be understood in itsmost strict mathematical definition, it being merely the most conciseword to describe randomness (noise, smoothness, snowiness, etc.).

Most serial data signals are not random. That is, one sample usuallycorrelates--to some degree--with the adjacent samples. Noise, incontrast, typically is random. If a random signal (e.g. noise) is addedto (or subtracted from) a non-random signal, the entropy of theresulting signal generally increases. That is, the resulting signal hasmore random variations than the original signal. This is the case withthe encoded output signal produced by the present encoding process; ithas more entropy than the original, unencoded signal.

If, in contrast, the addition of a random signal to (or subtractionfrom) a non-random signal reduces entropy, then something unusual ishappening. It is this anomaly that the present decoding process uses todetect embedded identification coding.

To fully understand this entropy-based decoding method, it is firsthelpful to highlight a characteristic of the original encoding process:the similar treatment of every eighth sample.

In the encoding process discussed above, the pointer 230 incrementsthrough the code word, one bit for each successive sample of the inputsignal. If the code word is eight bits in length, then the pointerreturns to the same bit position in the code word every eighth signalsample. If this bit is a "1", noise is added to the input signal; ifthis bit is a "0", noise is subtracted from the input signal. Due to thecyclic progression of the pointer 230, every eighth sample of an encodedsignal thus shares a characteristic: they are all either augmented bythe corresponding noise data (which may be negative), or they are alldiminished, depending on whether the bit of the code word then beingaddressed by pointer 230 is a "1" or a "0".

To exploit this characteristic, the entropy-based decoding processtreats every eighth sample of the suspect signal in like fashion. Inparticular, the process begins by adding to the 1st, 9th, 17th, 25th,etc. samples of the suspect signal the corresponding scaled noise signalvalues stored in the memory 214 (i.e. those stored in the 1st, 9th,17th, 25th, etc., memory locations, respectively). The entropy of theresulting signal (i.e. the suspect signal with every 8th samplemodified) is then computed.

(Computation of a signal's entropy or randomness is well understood byartisans in this field. One generally accepted technique is to take thederivative of the signal at each sample point, square these values, andthen sum over the entire signal. However, a variety of other well knowntechniques can alternatively be used.)

The foregoing step is then repeated, this time subtracting the storednoise values from the 1st, 9th, 17th, 25 etc. suspect signal samples.

One of these two operations will undo the encoding process and reducethe resulting signal's entropy; the other will aggravate it. If addingthe noise data in memory 214 to the suspect signal reduces its entropy,then this data must earlier have been subtracted from the originalsignal. This indicates that pointer 230 was pointing to a "0" bit whenthese samples were encoded. (A "0" at the control input ofadder/subtracter 212 caused it to subtract the scaled noise from theinput signal.)

Conversely, if subtracting the noise data from every eighth sample ofthe suspect signal reduces its entropy, then the encoding process musthave earlier added this noise. This indicates that pointer 230 waspointing to a "1" bit when samples 1, 9, 17, 25, etc., were encoded.

By noting whether entropy decreases by (a) adding or (b) subtracting thestored noise data to/from the suspect signal, it can be determined thatthe first bit of the code word is (a) a "0", or (b) a "1".

The foregoing operations are then conducted for the group of spacedsamples of the suspect signal beginning with the second sample (i.e. 2,10, 18, 26 . . . ). The entropy of the resulting signals indicatewhether the second bit of the code word is a "0" or a "1". Likewise withthe following 6 groups of spaced samples in the suspect signal, untilall 8 bits of the code word have been discerned.

It will be appreciated that the foregoing approach is not sensitive tocorruption mechanisms that alter the values of individual samples;instead, the process considers the entropy of the signal as a whole,yielding a high degree of confidence in the results. Further, even smallexcerpts of the signal can be analyzed in this manner, permitting piracyof even small details of an original work to be detected. The resultsare thus statistically robust, both in the face of natural and humancorruption of the suspect signal.

It will further be appreciated that the use of an N-bit code word inthis real time embodiment provides benefits analogous to those discussedabove in connection with the batch encoding system. (Indeed, the presentembodiment may be conceptualized as making use of N different noisesignals, just as in the batch encoding system. The first noise signal isa signal having the same extent as the input signal, and comprising thescaled noise signal at the 1st, 9th, 17th, 25th, etc., samples (assumingN=8), with zeroes at the intervening samples. The second noise signal isa similar one comprising the scaled noise signal at the 2d, 10th, 18th,26th, etc., samples, with zeroes at the intervening samples. Etc. Thesesignals are all combined to provide a composite noise signal.) One ofthe important advantages inherent in such a system is the high degree ofstatistical confidence (confidence which doubles with each successivebit of the identification code) that a match is really a match. Thesystem does not rely on subjective evaluation of a suspect signal for asingle, deterministic embedded code signal.

Illustrative Variations

From the foregoing description, it will be recognized that numerousmodifications can be made to the illustrated systems without changingthe fundamental principles. A few of these variations are describedbelow.

The above-described decoding process tries both adding and subtractingstored noise data to/from the suspect signal in order to find whichoperation reduces entropy. In other embodiments, only one of theseoperations needs to be conducted. For example, in one alternativedecoding process the stored noise data corresponding to every eighthsample of the suspect signal is only added to said samples. If theentropy of the resulting signal is thereby increased, then thecorresponding bit of the code word is a "1" (i.e. this noise was addedearlier, during the encoding process, so adding it again only compoundsthe signal's randomness). If the entropy of the resulting signal isthereby decreased, then the corresponding bit of the code word is a "0".A further test of entropy if the stored noise samples are subtracted isnot required.

The statistical reliability of the identification process (coding anddecoding) can be designed to exceed virtually any confidence threshold(e.g. 99.9%, 99.99%, 99.999%, etc. confidence) by appropriate selectionof the global scaling factors, etc. Additional confidence in any givenapplication (unnecessary in most applications) can be achieved byrechecking the decoding process.

One way to recheck the decoding process is to remove the stored noisedata from the suspect signal in accordance with the bits of thediscerned code word, yielding a "restored" signal (e.g. if the first bitof the code word is found to be "1," then the noise samples stored inthe 1st, 9th, 17th, etc. locations of the memory 214 are subtracted fromthe corresponding samples of the suspect signal). The entropy of therestored signal is measured and used as a baseline in furthermeasurements. Next, the process is repeated, this time removing thestored noise data from the suspect signal in accordance with a modifiedcode word. The modified code word is the same as the discerned codeword, except 1 bit is toggled (e.g. the first). The entropy of theresulting signal is determined, and compared with the baseline. If thetoggling of the bit in the discerned code word resulted in increasedentropy, then the accuracy of that bit of the discerned code word isconfirmed. The process repeats, each time with a different bit of thediscerned code word toggled, until all bits of the code word have beenso checked. Each change should result in an increase in entropy comparedto the baseline value.

The data stored in memory 214 is subject to a variety of alternatives.In the foregoing discussion, memory 214 contains the scaled noise data.In other embodiments, the unscaled noise data can be stored instead.

In still other embodiments, it can be desirable to store at least partof the input signal itself in memory 214. For example, the memory canallocate 8 signed bits to the noise sample, and 16 bits to store themost significant bits of an 18- or 20-bit audio signal sample. This hasseveral benefits. One is that it simplifies registration of a "suspect"signal. Another is that, in the case of encoding an input signal whichwas already encoded, the data in memory 214 can be used to discern whichof the encoding processes was performed first. That is, from the inputsignal data in memory 214 (albeit incomplete), it is generally possibleto determine with which of two code words it has been encoded.

Yet another alternative for memory 214 is that is can be omittedaltogether.

One way this can be achieved is to use a deterministic noise source inthe encoding process, such as an algorithmic noise generator seeded witha known key number. The same deterministic noise source, seeded with thesame key number, can be used in the decoding process. In such anarrangement, only the key number needs be stored for later use indecoding, instead of the large data set usually stored in memory 214.

Alternatively, if the noise signal added during encoding does not have azero mean value, and the length N of the code word is known to thedecoder, then a universal decoding process can be implemented. Thisprocess uses the same entropy test as the foregoing procedures, butcycles through possible code words, adding/subtracting a small dummynoise value (e.g. less than the expected mean noise value) to every Nthsample of the suspect signal, in accordance with the bits of the codeword being tested, until a reduction in entropy is noted. Such anapproach is not favored for most applications, however, because itoffers less security than the other embodiments (e.g. it is subject tocracking by brute force).

Many applications are well served by the embodiment illustrated in FIG.7, in which different code words are used to produce several differentlyencoded versions of an input signal, each making use of the same noisedata. More particularly, the embodiment 240 of FIG. 7 includes a noisestore 242 into which noise from source 206 is written during theidentification-coding of the input signal with a first code word. (Thenoise source of FIG. 7 is shown outside of the real time encoder 202 forconvenience of illustration.) Thereafter, additionalidentification-coded versions of the input signal can be produced byreading the stored noise data from the store and using it in conjunctionwith second through Nth code words to encode the signal. (Whilebinary-sequential code words are illustrated in FIG. 7, in otherembodiments arbitrary sequences of code words can be employed.) Withsuch an arrangement, a great number of differently-encoded signals canbe produced, without requiring a proportionally-sized long term noisememory. Instead, a fixed amount of noise data is stored, whetherencoding an original once or a thousand times.

(If desired, several differently-coded output signals can be produced atthe same time, rather than seriatim. One such implementation includes aplurality of adder/subtracter circuits 212, each driven with the sameinput signal and with the same scaled noise signal, but with differentcode words. Each, then, produces a differently encoded output signal.)

In applications having a great number of differently-encoded versions ofthe same original, it will be recognized that the decoding process neednot always discern every bit of the code word. Sometimes, for example,the application may require identifying only a group of codes to whichthe suspect signal belongs. (E.g., high order bits of the code wordmight indicate an organization to which several differently codedversions of the same source material were provided, with low-order bitsidentifying specific copies. To identify the organization with which asuspect signal is associated, it may not be necessary to examine the loworder bits, since the organization can be identified by the high orderbits alone.) If the identification requirements can be met by discerninga subset of the code word bits in the suspect signal, the decodingprocess can be shortened.

Some applications may be best served by restarting the encodingprocess--sometimes with a different code word--several times within anintegral work. Consider, as an example, videotaped productions (e.g.television programming). Each frame of a videotaped production can beidentification-coded with a unique code number, processed in real-timewith an arrangement 248 like that shown in FIG. 8. Each time a verticalretrace is detected by sync detector 250, the noise source 206 resets(e.g. to repeat the sequence just produced) and an identification codeincrements to the next value. Each frame of the videotape is therebyuniquely identification-coded. Typically, the encoded signal is storedon a videotape for long term storage (although other storage media,including laser disks, can be used).

Returning to the encoding apparatus, the look-up table 204 in theillustrated embodiment exploits the fact that high amplitude samples ofthe input data signal can tolerate (without objectionable degradation ofthe output signal) a higher level of encoded identification coding thancan low amplitude input samples. Thus, for example, input data sampleshaving decimal values of 0, 1 or 2 may be correspond (in the look-uptable 204) to scale factors of unity (or even zero), whereas input datasamples having values in excess of 200 may correspond to scale factorsof 15. Generally speaking, the scale factors and the input sample valuescorrespond by a square root relation. That is, a four-fold increase in avalue of the sampled input signal corresponds to approximately atwo-fold increase in a value of the scaling factor associated therewith.

(The parenthetical reference to zero as a scaling factor alludes tocases, e.g., in which the source signal is temporally or spatiallydevoid of information content. In an image, for example, a regioncharacterized by several contiguous sample values of zero may correspondto a jet black region of the frame. A scaling value of zero may beappropriate here since there is essentially no image data to bepirated.)

Continuing with the encoding process, those skilled in the art willrecognized the potential for "rail errors" in the illustratedembodiment. For example, if the input signal consists of 8-bit samples,and the samples span the entire range from 0 to 255 (decimal), then theaddition or subtraction of scaled noise to/from the input signal mayproduce output signals that cannot be represented by 8 bits (e.g. -2, or257). A number of well-understood techniques exist to rectify thissituation, some of them proactive and some of them reactive. (Amongthese known techniques are: specifying that the input signal shall nothave samples in the range of 0-4 or 251-255, thereby safely permittingmodulation by the noise signal; or including provision for detecting andadaptively modifying input signal samples that would otherwise causerail errors.)

While the illustrated embodiment describes stepping through the codeword sequentially, one bit at a time, to control modulation ofsuccessive bits of the input signal, it will be appreciated that thebits of the code word can be used other than sequentially for thispurpose. Indeed, bits of the code word can be selected in accordancewith any predetermined algorithm.

The dynamic scaling of the noise signal based on the instantaneous valueof the input signal is an optimization that can be omitted in manyembodiments. That is, the look-up table 204 and the first scaler 208 canbe omitted entirely, and the signal from the digital noise source 206applied directly (or through the second, global scaler 210) to theadder/subtracter 212.

It will be further recognized that the use of a zero-mean noise sourcesimplifies the illustrated embodiment, but is not essential. A noisesignal with another mean value can readily be used, and D.C.compensation (if needed) can be effected elsewhere in the system.

The use of a noise source 206 is also optional. A variety of othersignal sources can be used, depending on application-dependentconstraints (e.g. the threshold at which the encoded identificationsignal becomes perceptible). In many instances, the level of theembedded identification signal is low enough that the identificationsignal needn't have a random aspect; it is imperceptible regardless ofits nature. A pseudo random source 206, however, is usually desiredbecause it provides the greatest identification code signal S/N ratio (asomewhat awkward term in this instance) for a level of imperceptibilityof the embedded identification signal.

It will be recognized that identification coding need not occur after asignal has been reduced to stored form as data (i.e. "fixed in tangibleform," in the words of the U.S. Copyright Act). Consider, for example,the case of popular musicians whose performances are often recordedillicitly. By identification coding the audio before it drives concerthall speakers, unauthorized recordings of the concert can be traced to aparticular place and time. Likewise, live audio sources such as 911emergency calls can be encoded prior to recording so as to facilitatetheir later authentication.

While the black box embodiment has been described as a stand alone unit,it will be recognized that it can be integrated into a number ofdifferent tools/instruments as a component. One is a scanner, which canembed identification codes in the scanned output data. (The codes cansimply serve to memorialize that the data was generated by a particularscanner). Another is in creativity software, such as populardrawing/graphics/animation/paint programs offered by Adobe, Macromedia,Corel, and the like.

Finally, while the real-time encoder 202 has been illustrated withreference to a particular hardware implementation, it will be recognizedthat a variety of other implementations can alternatively be employed.Some utilize other hardware configurations. Others make use of softwareroutines for some or all of the illustrated functional blocks. (Thesoftware routines can be executed on any number of different generalpurpose programmable computers, such as 80×86 PC-compatible computers,RISC-based workstations, etc.)

TYPES OF NOISE, QUASI-NOISE, AND OPTIMIZED-NOISE

Heretofore this disclosure postulated Gaussian noise, "white noise," andnoise generated directly from application instrumentation as a few ofthe many examples of the kind of carrier signal appropriate to carry asingle bit of information throughout an image or signal. It is possibleto be even more proactive in "designing" characteristics of noise inorder to achieve certain goals. The "design" of using Gaussian orinstrumental noise was aimed somewhat toward "absolute" security. Thissection of the disclosure takes a look at other considerations for thedesign of the noise signals which may be considered the ultimatecarriers of the identification information.

For some applications it might be advantageous to design the noisecarrier signal (e.g. the Nth embedded code signal in the firstembodiment; the scaled noise data in the second embodiment), so as toprovide more absolute signal strength to the identification signalrelative to the perceptibility of that signal. One example is thefollowing. It is recognized that a true Gaussian noise signal has thevalue `0` occur most frequently, followed by 1 and -1 at equalprobabilities to each other but lower than `0`, 2 and -2 next, and soon. Clearly, the value zero carries no information as it is used in suchan embodiment. Thus, one simple adjustment, or design, would be that anytime a zero occurs in the generation of the embedded code signal, a newprocess takes over, whereby the value is converted "randomly" to eithera 1 or a -1. In logical terms, a decision would be made: if `0`, thenrandom (1,-1). The histogram of such a process would appear as aGaussian/Poissonian type distribution, except that the 0 bin would beempty and the 1 and -1 bin would be increased by half the usualhistogram value of the 0 bin.

In this case, identification signal energy would always be applied atall parts of the signal. A few of the trade-offs include: there is a(probably negligible) lowering of security of the codes in that a"deterministic component" is a part of generating the noise signal. Thereason this might be completely negligible is that we still wind up witha coin flip type situation on randomly choosing the 1 or the -1. Anothertrade-off is that this type of designed noise will have a higherthreshold of perceptibility, and will only be applicable to applicationswhere the least significant bit of a data stream or image is alreadynegligible relative to the commercial value of the material, i.e. if theleast significant bit were stripped from the signal (for all signalsamples), no one would know the difference and the value of the materialwould not suffer. This blocking of the zero value in the example aboveis but one of many ways to "optimize" the noise properties of the signalcarrier, as anyone in the art can realize. We refer to this also as"quasi-noise" in the sense that natural noise can be transformed in apre-determined way into signals which for all intents and purposes willread as noise. Also, cryptographic methods and algorithms can easily,and often by definition, create signals which are perceived ascompletely random. Thus the word "noise" can have differentconnotations, primarily between that as defined subjectively by anobserver or listener, and that defined mathematically. The difference ofthe latter is that mathematical noise has different properties ofsecurity and the simplicity with which it can either be "sleuthed" orthe simplicity with which instruments can "automatically recognize" theexistence of this noise.

"Universal" Embedded Codes

The bulk of this disclosure teaches that for absolute security, thenoise-like embedded code signals which carry the bits of information ofthe identification signal should be unique to each and every encodedsignal, or, slightly less restrictive, that embedded code signals shouldbe generated sparingly, such as using the same embedded codes for abatch of 1000 pieces of film, for example. Be this as it may, there is awhole other approach to this issue wherein the use of what we will call"universal" embedded code signals can open up large new applications forthis technology. The economics of these uses would be such that the defacto lowered security of these universal codes (e.g. they would beanalyzable by time honored cryptographic decoding methods, and thuspotentially thwarted or reversed) would be economically negligiblerelative to the economic gains that the intended uses would provide.Piracy and illegitimate uses would become merely a predictable "cost"and a source of uncollected revenue only; a simple line item in aneconomic analysis of the whole. A good analogy of this is in the cableindustry and the scrambling of video signals. Everybody seems to knowthat crafty, skilled technical individuals, who may be generally lawabiding citizens, can climb a ladder and flip a few wires in their cablejunction box in order to get all the pay channels for free. The cableindustry knows this and takes active measures to stop it and prosecutethose caught, but the "lost revenue" derived from this practice remainsprevalent but almost negligible as a percentage of profits gained fromthe scrambling system as a whole. The scrambling system as a whole is aneconomic success despite its lack of "absolute security."

The same holds true for applications of this technology wherein, for theprice of lowering security by some amount, large economic opportunitypresents itself. This section first describes what is meant by universalcodes, then moves on to some of the interesting uses to which thesecodes can be applied.

Universal embedded codes generally refer to the idea that knowledge ofthe exact codes can be distributed. The embedded codes won't be put intoa dark safe never to be touched until litigation arises (as alluded toin other parts of this disclosure), but instead will be distributed tovarious locations where on-the-spot analysis can take place. Generallythis distribution will still take place within a security controlledenvironment, meaning that steps will be taken to limit the knowledge ofthe codes to those with a need to know. Instrumentation which attemptsto automatically detect copyrighted material is a non-human example of"something" with a need to know the codes.

There are many ways to implement the idea of universal codes, each withtheir own merits regarding any given application. For the purposes ofteaching this art, we separate these approaches into three broadcategories: universal codes based on libraries, universal codes based ondeterministic formula, and universal codes based on pre-defined industrystandard patterns. A rough rule of thumb is that the first is moresecure than the latter two, but that the latter two are possibly moreeconomical to implement than the first.

Universal Codes: 1) Libraries of Universal Codes

The use of libraries of universal codes simply means that applicant'stechniques are employed as described, except for the fact that only alimited set of the individual embedded code signals are generated andthat any given encoded material will make use of some sub-set of thislimited "universal set." An example is in order here. A photographicprint paper manufacturer may wish to pre-expose every piece of 8 by 10inch print paper which they sell with a unique identification code. Theyalso wish to sell identification code recognition software to theirlarge customers, service bureaus, stock agencies, and individualphotographers, so that all these people can not only verify that theirown material is correctly marked, but so that they can also determine ifthird party material which they are about to acquire has been identifiedby this technology as being copyrighted. This latter information willhelp them verify copyright holders and avoid litigation, among manyother benefits. In order to "economically" institute this plan, theyrealize that generating unique individual embedded codes for each andevery piece of print paper would generate Terabytes of independentinformation, which would need storing and to which recognition softwarewould need access. Instead, they decide to embed their print paper with16 bit identification codes derived from a set of only 50 independent"universal" embedded code signals. The details of how this is done arein the next paragraph, but the point is that now their recognitionsoftware only needs to contain a limited set of embedded codes in theirlibrary of codes, typically on the order of 1 Megabyte to 10 Megabytesof information for 50×16 individual embedded codes splayed out onto an8×10 photographic print (allowing for digital compression). The reasonfor picking 50 instead of just 16 is one of a little more addedsecurity, where if it were the same 16 embedded codes for allphotographic sheets, not only would the serial number capability belimited to 2 to the 16th power, but lesser and lesser sophisticatedpirates could crack the codes and remove them using software tools.

There are many different ways to implement this scheme, where thefollowing is but one exemplary method. It is determined by the wisdom ofcompany management that a 300 pixels per inch criteria for the embeddedcode signals is sufficient resolution for most applications. This meansthat a composite embedded code image will contain 3000 pixels by 2400pixels to be exposed at a very low level onto each 8×10 sheet. Thisgives 7.2 million pixels. Using our staggered coding system such asdescribed in the black box implementation of FIGS. 5 and 6, eachindividual embedded code signal will contain only 7.2 million divided by16, or approximately 450K true information carrying pixels, i.e. every16th pixel along a given raster line. These values will typically be inthe range of 2 to -2 in digital numbers, or adequately described by asigned 3 bit number. The raw information content of an embedded code isthen approximately 3/8th's bytes times 450K or about 170 Kilobytes.Digital compression can reduce this further. All of these decisions aresubject to standard engineering optimization principles as defined byany given application at hand, as is well known in the art. Thus we findthat 50 of these independent embedded codes will amount to a fewMegabytes. This is quite reasonable level to distribute as a "library"of universal codes within the recognition software. Advanced standardencryption devices could be employed to mask the exact nature of thesecodes if one were concerned that would-be pirates would buy therecognition software merely to reverse engineer the universal embeddedcodes. The recognition software could simply unencrypt the codes priorto applying the recognition techniques taught in this disclosure.

The recognition software itself would certainly have a variety offeatures, but the core task it would perform is determining if there issome universal copyright code within a given image. The key questionsbecome WHICH 16 of the total 50 universal codes it might contain, ifany, and if there are 16 found, what are their bit values. The keyvariables in determining the answers to these questions are:registration, rotation, magnification (scale), and extent. In the mostgeneral case with no helpful hints whatsoever, all variables must beindependently varied across all mutual combinations, and each of the 50universal codes must then be checked by adding and subtracting to see ifan entropy decrease occurs. Strictly speaking, this is an enormous job,but many helpful hints will be found which make the job much simpler,such as having an original image to compare to the suspected copy, orknowing the general orientation and extent of the image relative to an8×10 print paper, which then through simple registration techniques candetermine all of the variables to some acceptable degree. Then it merelyrequires cycling through the 50 universal codes to find any decrease inentropy. If one does, then 15 others should as well. A protocol needs tobe set up whereby a given order of the 50 translates into a sequence ofmost significant bit through least significant bit of the ID code word.Thus if we find that universal code number "4" is present, and we findits bit value to be "0", and that universal codes "1" through "3" aredefinitely not present, then our most significant bit of our N-bit IDcode number is a "0". Likewise, we find that the next lowest universalcode present is number "7" and it turns out to be a "1", then our nextmost significant bit is a "1". Done properly, this system can cleanlytrace back to the copyright owner so long as they registered theirphotographic paper stock serial number with some registry or with themanufacturer of the paper itself. That is, we look up in the registrythat a paper using universal embedded codes4,7,11,12,15,19,21,26,27,28,34,35,37,38,40, and 48, and having theembedded code 0110 0101 0111 0100 belongs to Leonardo de Boticelli, anunknown wildlife photographer and glacier cinematographer whose addressis in Northern Canada. We know this because he dutifully registered hisfilm and paper stock, a few minutes of work when he bought the stock,which he plopped into the "no postage necessary" envelope that themanufacturing company kindly provided to make the process ridiculouslysimple. Somebody owes Leonardo a royalty check it would appear, andcertainly the registry has automated this royalty payment process aspart of its services.

One final point is that truly sophisticated pirates and others withillicit intentions can indeed employ a variety of cryptographic and notso cryptographic methods to crack these universal codes, sell them, andmake software and hardware tools which can assist in the removing ordistorting of codes. We shall not teach these methods as part of thisdisclosure, however. In any event, this is one of the prices which mustbe paid for the ease of universal codes and the applications they openup.

Universal Codes: 2) Universal Codes Based on Deterministic Formulas

The libraries of universal codes require the storage and transmittal ofMegabytes of independent, generally random data as the keys with whichto unlock the existence and identity of signals and imagery that havebeen marked with universal codes. Alternatively, various deterministicformulas can be used which "generate" what appear to be randomdata/image frames, thereby obviating the need to store all of thesecodes in memory and interrogate each and of the "50" universal codes.Deterministic formulas can also assist in speeding up the process ofdetermining the ID code once one is known to exist in a given signal orimage. On the other hand, deterministic formulas lend themselves tosleuthing by less sophisticated pirates. And once sleuthed, they lendthemselves to easier communication, such as posting on the Internet to ahundred newsgroups. There may well be many applications which do notcare about sleuthing and publishing, and deterministic formulas forgenerating the individual universal embedded codes might be just theticket.

Universal Codes: 3) "Simple" Universal Codes

This category is a bit of a hybrid of the first two, and is mostdirected at truly large scale implementations of the principles of thistechnology. The applications employing this class are of the type wherestaunch security is much less important than low cost, large scaleimplementation and the vastly larger economic benefits that thisenables. One exemplary application is placement of identificationrecognition units directly within modestly priced home audio and videoinstrumentation (such as a TV). Such recognition units would typicallymonitor audio and/or video looking for these copyright identificationcodes, and thence triggering simple decisions based on the findings,such as disabling or enabling recording capabilities, or incrementingprogram specific billing meters which are transmitted back to a centralaudio/video service provider and placed onto monthly invoices. Likewise,it can be foreseen that "black boxes" in bars and other public placescan monitor (listen with a microphone) for copyrighted materials andgenerate detailed reports, for use by ASCAP, BMI, and the like.

A core principle of simple universal codes is that some basic industrystandard "noiselike" and seamlessly repetitive patterns are injectedinto signals, images, and image sequences so that inexpensiverecognition units can either A) determine the mere existence of acopyright "flag", and B) additionally to A, determine preciseidentification information which can facilitate more complex decisionmaking and actions.

In order to implement this particular embodiment, the basic principlesof generating the individual embedded noise signals need to besimplified in order to accommodate inexpensive recognition signalprocessing circuitry, while maintaining the properties of effectiverandomness and holographic permeation. With large scale industryadoption of these simple codes, the codes themselves would border onpublic domain information (much as cable scrambling boxes are almost defacto public domain), leaving the door open for determined pirates todevelop black market countermeasures, but this situation would be quiteanalogous to the scrambling of cable video and the objective economicanalysis of such illegal activity.

One prior art known to the applicant in this general area of pro-activecopyright detection is the Serial Copy Management System adopted by manyfirms in the audio industry. To the best of applicant's knowledge, thissystem employs a non-audio "flag", signal which is not part of the audiodata stream, but which is nevertheless grafted onto the audio stream andcan indicate whether the associated audio data should or should not beduplicated. One problem with this system is that it is restricted tomedia and instrumentation which can support this extra "flag" signal.Another deficiency is that the flagging system carries no identityinformation which would be useful in making more complex decisions. Yetanother difficulty is that high quality audio sampling of an analogsignal can come arbitrarily close to making a perfect digital copy ofsome digital master and there seems to be no provision for inhibitingthis possibility.

Applicant's technology can be brought to bear on these and otherproblems, in audio applications, video, and all of the otherapplications previously discussed. An exemplary application of simpleuniversal codes is the following. A single industry standard "1.000000second of noise" would be defined as the most basic indicator of thepresence or absence of the copyright marking of any given audio signal.FIG. 9 has an example of what the waveform of an industry standard noisesecond might look like, both in the time domain 400 and the frequencydomain 402. It is by definition a continuous function and would adapt toany combination of sampling rates and bit quantizations. It has anormalized amplitude and can be scaled arbitrarily to any digital signalamplitude. The signal level and the first M'th derivatives of the signalare continuous at the two boundaries 404 (FIG. 9C), such that when it isrepeated, the "break" in the signal would not be visible (as a waveform)or audible when played through a high end audio system. The choice of 1second is arbitrary in this example, where the precise length of theinterval will be derived from considerations such as audibility,quasi-white noise status, seamless repeatability, simplicity ofrecognition processing, and speed with which a copyright markingdetermination can be made. The injection of this repeated noise signalonto a signal or image (again, at levels below human perception) wouldindicate the presence of copyright material. This is essentially a onebit identification code, and the embedding of further identificationinformation will be discussed later on in this section. The use of thisidentification technique can extend far beyond the low cost homeimplementations discussed here, where studios could use the technique,and monitoring stations could be set up which literally monitor hundredsof channels of information simultaneously, searching for marked datastreams, and furthermore searching for the associated identity codeswhich could be tied in with billing networks and royalty trackingsystems.

This basic, standardized noise signature is seamlessly repeated over andover again and added to audio signals which are to be marked with thebase copyright identification. Part of the reason for the word "simple"is seen here: clearly pirates will know about this industry standardsignal, but their illicit uses derived from this knowledge, such aserasure or corruption, will be economically minuscule relative to theeconomic value of the overall technique to the mass market. For mosthigh end audio this signal will be some 80 to 100 dB down from fullscale, or even much further; each situation can choose its own levelsthough certainly there will be recommendations. The amplitude of thesignal can be modulated according to the audio signal levels to whichthe noise signature is being applied, i.e. the amplitude can increasesignificantly when a drum beats, but not so dramatically as to becomeaudible or objectionable. These measures merely assist the recognitioncircuitry to be described.

Recognition of the presence of this noise signature by low costinstrumentation can be effected in a variety of ways. One rests on basicmodifications to the simple principles of audio signal power metering.Software recognition programs can also be written, and moresophisticated mathematical detection algorithms can be applied to audioin order to make higher confidence detection identifications. In suchembodiments, detection of the copyright noise signature involvescomparing the time averaged power level of an audio signal with the timeaveraged power level of that same audio signal which has had the noisesignature subtracted from it. If the audio signal with the noisesignature subtracted has a lower power level that the unchanged audiosignal, then the copyright signature is present and some status flag tothat effect needs to be set. The main engineering subtleties involved inmaking this comparison include: dealing with audio speed playbackdiscrepancies (e.g. an instrument might be 0.5% "slow" relative toexactly one second intervals); and, dealing with the unknown phase ofthe one second noise signature within any given audio (basically, its"phase" can be anywhere from 0 to 1 seconds). Another subtlety, not socentral as the above two but which nonetheless should be addressed, isthat the recognition circuits should not subtract a higher amplitude ofthe noise signature than was originally embedded onto the audio signal.Fortunately this can be accomplished by merely subtracting only a smallamplitude of the noise signal, and if the power level goes down, this isan indication of "heading toward a trough" in the power levels. Yetanother related subtlety is that the power level changes will be verysmall relative to the overall power levels, and calculations generallywill need to be done with appropriate bit precision, e.g. 32 bit valueoperations and accumulations on 16-20 bit audio in the calculations oftime averaged power levels.

Clearly, designing and packaging this power level comparison processingcircuitry for low cost applications is an engineering optimization task.One trade-off will be the accuracy of making an identification relativeto the "short-cuts" which can be made to the circuitry in order to lowerits cost and complexity. One embodiment for placing this recognitioncircuitry inside of instrumentation is through a single programmableintegrated circuit which is custom made for the task. FIG. 10 shows onesuch integrated circuit 506. Here the audio signal comes in, 500, eitheras a digital signal or as an analog signal to be digitized inside the IC500, and the output is a flag 502 which is set to one level if thecopyright noise signature is found, and to another level if it is notfound. Also depicted is the fact that the standardized noise signaturewaveform is stored in Read Only Memory, 504, inside the IC 506. Therewill be a slight time delay between the application of an audio signalto the IC 506 and the output of a valid flag 502, due to the need tomonitor some finite portion of the audio before a recognition can place.In this case, there may need to be a "flag valid" output 508 where theIC informs the external world if it has had enough time to make a properdetermination of the presence or absence of the copyright noisesignature.

There are a wide variety of specific designs and philosophies of designsapplied to accomplishing the basic function of the IC 506 of FIG. 10.Audio engineers and digital signal processing engineers are able togenerate several fundamentally different designs. One such design isdepicted in FIG. 11 by a process 599, which itself is subject to furtherengineering optimization as will be discussed. FIG. 11 depicts a flowchart for any of: an analog signal processing network, a digital signalprocessing network, or programming steps in a software program. We findan input signal 600 which along one path is applied to a time averagedpower meter 602, and the resulting power output itself treated as asignal P_(sig). To the upper right we find the standard noise signature504 which will be read out at 125% of normal speed, 604, thus changingits pitch, giving the "pitch changed noise signal" 606. Then the inputsignal has this pitch changed noise signal subtracted in step 608, andthis new signal is applied to the same form of time averaged power meteras in 602, here labelled 610. The output of this operation is also atime based signal here labelled as P_(s-pcn), 610. Step 612 thensubtracts the power signal 602 from the power signal 610, giving anoutput difference signal P_(out), 613. If the universal standard noisesignature does indeed exist on the input audio signal 600, then case 2,616, will be created wherein a beat signal 618 of approximately 4 secondperiod will show up on the output signal 613, and it remains to detectthis beat signal with a step such as in FIG. 12, 622. Case 1, 614, is asteady noisy signal which exhibits no periodic beating. 125% at step 604is chosen arbitrarily here, where engineering considerations woulddetermine an optimal value, leading to different beat signal frequencies618. Whereas waiting 4 seconds in this example would be quite a while,especially is you would want to detect at least two or three beats, FIG.12 outlines how the basic design of FIG. 11 could be repeated andoperated upon various delayed versions of the input signal, delayed bysomething like 1/20th of a second, with 20 parallel circuits working inconcert each on a segment of the audio delayed by 0.05 seconds fromtheir neighbors. In this way, a beat signal will show up approximatelyevery 1/5th of a second and will look like a travelling wave down thecolumns of beat detection circuits. The existence or absence of thistravelling beat wave triggers the detection flag 502. Meanwhile, therewould be an audio signal monitor 624 which would ensure that, forexample, at least two seconds of audio has been heard before setting theflag valid signal 508.

Though the audio example was described above, it should be clear toanyone in the art that the same type of definition of some repetitiveuniversal noise signal or image could be applied to the many othersignals, images, pictures, and physical media already discussed.

The above case deals only with a single bit plane of information, i.e.,the noise signature signal is either there (1) or it isn't (0). For manyapplications, it would be nice to detect serial number information aswell, which could then be used for more complex decisions, or forlogging information on billing statements or whatnot. The sameprinciples as the above would apply, but now there would be Nindependent noise signatures as depicted in FIG. 9 instead one singlesuch signature. Typically, one such signature would be the master uponwhich the mere existence of a copyright marking is detected, and thiswould have generally higher power than the others, and then the otherlower power "identification" noise signatures would be embedded intoaudio. Recognition circuits, once having found the existence of theprimary noise signature, would then step through the other N noisesignatures applying the same steps as described above. Where a beatsignal is detected, this indicates the bit value of `1`, and where nobeat signal is detected, this indicates a bit value of `0`. It might betypical that N will equal 32, that way 2³² number of identificationcodes are available to any given industry employing this technology.

Use of this Technology When the Length of the Identification Code is 1

The principles described herein can obviously be applied in the casewhere only a single presence or absence of an identification signal--afingerprint if you will--is used to provide confidence that some signalor image is copyrighted. The example above of the industry standardnoise signature is one case in point. We no longer have the addedconfidence of the coin flip analogy, we no longer have tracking codecapabilities or basic serial number capabilities, but many applicationsmay not require these attributes and the added simplicity of a singlefingerprint might outweigh these other attributes in any event.

The "Wallpaper" Analogy

The term "holographic" has been used in this disclosure to describe howan identification code number is distributed in a largely integral formthroughout an encoded signal or image. This also refers to the idea thatany given fragment of the signal or image contains the entire uniqueidentification code number. As with physical implementations ofholography, there are limitations on how small a fragment can becomebefore one begins to lose this property, where the resolution limits ofthe holographic media are the main factor in this regard for holographyitself. In the case of an uncorrupted distribution signal which has usedthe encoding device of FIG. 5, and which furthermore has used our"designed noise" of above wherein the zero's were randomly changed to a1 or -1, then the extent of the fragment required is merely N contiguoussamples in a signal or image raster line, where N is as definedpreviously being the length of our identification code number. This isan informational extreme; practical situations where noise andcorruption are operative will require generally one, two or higherorders of magnitude more samples than this simple number N. Thoseskilled in the art will recognize that there are many variables involvedin pinning down precise statistics on the size of the smallest fragmentwith which an identification can be made.

For tutorial purposes, the applicant also uses the analogy that theunique identification code number is "wallpapered" across and image (orsignal). That is, it is repeated over and over again all throughout animage. This repetition of the ID code number can be regular, as in theuse of the encoder of FIG. 5, or random itself, where the bits in the IDcode 216 of FIG. 6 are not stepped through in a normal repetitivefashion but rather are randomly selected on each sample, and the randomselection stored along with the value of the output 228 itself. in anyevent, the information carrier of the ID code, the individual embeddedcode signal, does change across the image or signal. Thus as thewallpaper analogy summarizes: the ID code repeats itself over and over,but the patterns that each repetition imprints change randomlyaccordingly to a generally unsleuthable key.

Lossy Data Compression

As earlier mentioned, applicant's preferred forms of identificationcoding withstand lossy data compression, and subsequent decompression.Such compression is finding increasing use, particularly in contextssuch as the mass distribution of digitized entertainment programming(movies, etc.).

While data encoded according to the disclosed techniques can withstandall types of lossy compression known to applicant, those expected to bemost commercially important are the CCITT G3, CCITT G4, JPEG, MPEG andJBIG compression/decompression standards. The CCITT standards are widelyused in black-and-white document compression (e.g. facsimile anddocument-storage). JPEG is most widely used with still images. MPEG ismost widely used with moving images. JBIG is a likely successor to theCCITT standards for use with black-and-white imagery. Such techniquesare well known to those in the lossy data compression field; a goodoverview can be found in Pennebaker et al, JPEG, Still Image DataCompression Standard, Van Nostrand Reinhold, N.Y., 1993.

Towards Steganography Proper and the Use of this Technology in PassingMore Complex Messages or Information

This disclosure concentrates on what above was called wallpapering asingle identification code across an entire signal. This appears to be adesirable feature for many applications. However, there are otherapplications where it might be desirable to pass messages or to embedvery long strings of pertinent identification information in signals andimages. One of many such possible applications would be where a givensignal or image is meant to be manipulated by several different groups,and that certain regions of an image are reserved for each group'sidentification and insertion of pertinent manipulation information.

In these cases, the code word 216 in FIG. 6 can actually change in somepre-defined manner as a function of signal or image position. Forexample, in an image, the code could change for each and every rasterline of the digital image. It might be a 16 bit code word, 216, but eachscan line would have a new code word, and thus a 480 scan line imagecould pass a 980 (480×2 bytes) byte message. A receiver of the messagewould need to have access to either the noise signal stored in memory214, or would have to know the universal code structure of the noisecodes if that method of coding was being used. To the best ofapplicant's knowledge, this is a novel approach to the mature field ofsteganography.

In all three of the foregoing applications of universal codes, it willoften be desirable to append a short (perhaps 8- or 16-bit) privatecode, which users would keep in their own secured places, in addition tothe universal code. This affords the user a further modicum of securityagainst potential erasure of the universal codes by sophisticatedpirates.

Applicant's Prior Application

The Detailed Description to this point has simply repeated thedisclosure of applicant's prior international application, laid open asPCT publication WO 95/14289. It was reproduced above simply to providecontext for the disclosure which follows.

One Master Code Signal As A Distinction From N Independent Embedded CodeSignals

In certain sections of this disclosure, perhaps exemplified in thesection on the realtime encoder, an economizing step was taken wherebythe N independent and source-signal-coextensive embedded code signalswere so designed that the non-zero elements of any given embedded codesignal were unique to just that embedded code signal and no others. Saidmore carefully, certain pixels/sample points of a given signal were"assigned" to some pre-determined m'th bit location in our N-bitidentification word. Furthermore, and as another basic optimization ofimplementation, the aggregate of these assigned pixels/samples acrossall N embedded code signals is precisely the extent of the sourcesignal, meaning each and every pixel/sample location in a source signalis assigned one and only one m'th bit place in our N-bit identificationword. (This is not to say, however, that each and every pixel MUST bemodified). As a matter of simplification we can then talk about a singlemaster code signal (or "Snowy Image") rather than N independent signals,realizing that pre-defined locations in this master signal correspond tounique bit locations in our N-bit identification word. We thereforeconstruct, via this circuitous route, this rather simple concept on thesingle master noise signal. Beyond mere economization andsimplification, there are also performance reasons for this shift,primarily derived from the idea that individual bit places in our N-bitidentification word are no longer "competing" for the informationcarrying capacity of a single pixel/sample.

With this single master more clearly understood, we can gain newinsights into other sections of this disclosure and explore furtherdetails within the given application areas.

More of Deterministic Universal Codes Using the Master Code Concept

One case in point is to further explore the use of DeterministicUniversal Codes, labelled as item "2" in the sections devoted touniversal codes. A given user of this technology may opt for thefollowing variant use of the principles of this technology. The user inquestion might be a mass distributor of home videos, but clearly theprinciples would extend to all other potential users of this technology.FIG. 13 pictorially represents the steps involved. In the example theuser is one "Alien Productions." They first create an image canvas whichis coextensive to the size of the video frames of their movie "Bud'sAdventures." On this canvas they print the name of the movie, they placetheir logo and company name. Furthermore, they have specific informationat the bottom, such as the distribution lot for the mass copying thatthey are currently cranking out, and as indicated, they actually have aunique frame number indicated. Thus we find the example of a standardimage 700 which forms the initial basis for the creation of a masterSnowy Image (master code signal) which will be added into the originalmovie frame, creating an output distributable frame. This image 700 canbe either black & white or color. The process of turning this image 700into a pseudo random master code signal is alluded to by theencryption/scrambling routine 702, wherein the original image 700 ispassed through any of dozens of well known scrambling methods. Thedepiction of the number "28" alludes to the idea that there can actuallybe a library of scrambling methods, and the particular method used forthis particular movie, or even for this particular frame, can change.The result is our classic master code signal or Snowy Image. In general,its brightness values are large and it would look very much like thesnowy image on a television set tuned to a blank channel, but clearly ithas been derived from an informative image 700, transformed through ascrambling 702. (Note: the splotchiness of the example picture isactually a rather poor depiction; it was a function of the crude toolsavailable to the inventor).

This Master Snowy Image 704 is then the signal which is modulated by ourN-bit identification word as outlined in other sections of thedisclosure, the resulting modulated signal is then scaled down inbrightness to the acceptable perceived noise level, and then added tothe original frame to produce the distributable frame.

There are a variety of advantages and features that the method depictedin FIG. 13 affords. There are also variations of theme within thisoverall variation. Clearly, one advantage is that users can now use moreintuitive and personalized methods for stamping and signing their work.Provided that the encryption/scrambling routines, 702, are indeed of ahigh security and not published or leaked, then even if a would-bepirate has knowledge of the logo image 700, they should not be able touse this knowledge to be able to sleuth the Master Snowy Image 704, andthus they should not be able to crack the system, as it were. On theother hand, simple encryption routines 702 may open the door forcracking the system. Another clear advantage of the method of FIG. 13 isthe ability to place further information into the overall protectiveprocess. Strictly speaking, the information contained in the logo image700 is not directly carried in the final distributable frame. Saidanother way, and provided that the encryption/scrambling routine 702 hasa straightforward and known decryption/descrambling method whichtolerates bit truncation errors, it is generally impossible to fullyre-create the image 700 based upon having the distributable frame, theN-bit identification code word, the brightness scaling factor used, andthe number of the decryption routine to be used. The reason that anexact recreation of the image 700 is impossible is due to the scalingoperation itself and the concomitant bit truncation. For the presentdiscussion, this whole issue is somewhat academic, however.

A variation on the theme of FIG. 13 is to actually place the N-bitidentification code word directly into the logo image 700. In some sensethis would be self-referential. Thus when we pull out our stored logoimage 700 it already contains visually what our identification word is,then we apply encryption routine #28 to this image, scale it down, thenuse this version to decode a suspect image using the techniques of thisdisclosure. The N bit word thus found should match the one contained inour logo image 700.

One desirable feature of the encryption/scrambling routine 702 might be(but is certainly not required to be) that even given a small change inthe input image 700, such as a single digit change of the frame number,there would be a huge visual change in the output scrambled master snowyimage 704. Likewise, the actual scrambling routine may change as afunction of frame numbers, or certain "seed" numbers typically usedwithin pseudo-randomizing functions could change as a function of framenumber. All manner of variations are thus possible, all helping tomaintain high levels of security. Eventually, engineering optimizationconsiderations will begin to investigate the relationship between someof these randomizing methods, and how they all relate to maintainingacceptable signal strength levels through the process of transforming anuncompressed video stream into a compressed video stream such as withthe MPEG compression methodologies.

Another desired feature of the encryption process 702 is that it shouldbe informationally efficient, i.e., that given any random input, itshould be able to output an essentially spatially uniform noisy imagewith little to no residual spatial patterns beyond pure randomness. Anyresidual correlated patterns will contribute to inefficiency of encodingthe N-bit identification word, as well as opening up further tools towould-be pirates to break the system.

Another feature of the method of FIG. 13 is that there is moreintuitional appeal to using recognizable symbols as part of a decodingsystem, which should then translate favorably in the essentially layenvironment of a courtroom. It strengthens the simplicity of the coinflip vernacular mentioned elsewhere. Jury members or judges will betterrelate to an owner's logo as being a piece of the key of recognizing asuspect copy as being a knock-off.

It should also be mentioned that, strictly speaking, the logo image 700does not need to be randomized. The steps could equally apply straightto the logo image 700 directly. It is not entirely clear to the inventorwhat practical goal this might have. A trivial extension of this conceptto the case where N=1 is where, simply and easily, the logo image 700 ismerely added to an original image at a very low brightness level. Theinventor does not presume this trivial case to be at all a novelty. Inmany ways this is similar to the age old issue of subliminaladvertising, where the low light level patterns added to an image arerecognizable to the human eye/brain system and--supposedly--operating onthe human brain at an unconscious level. By pointing out these trivialextensions of the current technology, hopefully there can arise furtherclarity which distinguishes applicant's novel principles in relation tosuch well known prior art techniques.

5-bit Abridged Alphanumeric Code Sets and Others

It is desirable in some applications for the N-bit identification wordto actually signify names, companies, strange words, messages, and thelike. Most of this disclosure focuses on using the N-bit identificationword merely for high statistical security, indexed tracking codes, andother index based message carrying. The information carrying capacity of"invisible signatures" inside imagery and audio is somewhat limited,however, and thus it would be wise to use our N bits efficiently if weactually want to "spell out" alphanumeric items in the N-bitidentification word.

One way to do this is to define, or to use an already existing, reducedbit (e.g. less than 8-bit ASCII) standardized codes for passingalphanumeric messages. This can help to satisfy this need on the part ofsome applications. For example, a simple alphanumeric code could bebuilt on a 5-bit index table, where for example the letters V,X,Q, and Zare not included, but the digits 0 through 9 are included. In this way,a 100 bit identification word could carry with it 20 alphanumericsymbols. Another alternative is to use variable bit length codes such asthe ones used in text compression routines (e.g. Huffman) whereby morefrequently used symbols have shorter bit length codes and lessfrequently used symbols have longer bit lengths.

More on Detecting and Recognizing the N-bit Identification Word inSuspect Signals

Classically speaking, the detection of the N-bit identification wordfits nicely into the old art of detecting known signals in noise. Noisein this last statement can be interpreted very broadly, even to thepoint where an image or audio track itself can be considered noise,relative to the need to detect the underlying signature signals. One ofmany references to this older art is the book Kassam, Saleem A., "SignalDetection in Non-Gaussian Noise," Springer-Verlag, 1988 (generallyavailable at well stocked libraries, e.g. available at the U.S. Libraryof Congress by catalog number TK5102.5 .K357 1988, and attached heretoas Appendix A). To the best of this inventor's current understanding,none of the material in this book is directly applicable to the issue ofdiscovering the polarity of applicant's embedded signals, but thebroader principles are indeed applicable.

In particular, section 1.2 "Basic Concepts of Hypothesis Testing" ofKassam's book lays out the basic concept of a binary hypothesis,assigning the value "1" to one hypothesis and the value "0" to the otherhypothesis. The last paragraph of that section is also on pointregarding the earlier-described embodiment, i.e., that the "0"hypothesis corresponds to "noise only" case, whereas the "1" correspondsto the presence of a signal in the observations. Applicant's use of truepolarity is not like this, however, where now the "0" corresponds to thepresence of an inverted signal rather than to "noise-only." Also in thepresent embodiment, the case of "noise-only" is effectively ignored, andthat an identification process will either come up with our N-bitidentification word or it will come up with "garbage."

The continued and inevitable engineering improvement in the detection ofembedded code signals will undoubtedly borrow heavily from this genericfield of known signal detection. A common and well-known technique inthis field is the so-called "matched filter," which is incidentallydiscussed early in section 2 of the Kassam book. Many basic texts onsignal processing include discussions on this method of signaldetection. This is also known in some fields as correlation detection.Furthermore, when the phase or location of a known signal is known apriori, such as is often the case in applications of this technology,then the matched filter can often be reduced to a simple vector dotproduct between a suspect image and the embedded signal associated withan m'th bit plane in our N-bit identification word. This then representsyet another simple "detection algorithm" for taking a suspect image andproducing a sequence of 1s and 0s with the intention of determining ifthat series corresponds to a pre-embedded N-bit identification word. Inwords, and with reference to FIG. 3, we run through the process steps upthrough and including the subtracting of the original image from thesuspect, but the next step is merely to step through all N randomindependent signals and perform a simple vector dot product betweenthese signals and the difference signal, and if that dot product isnegative, assign a `0` and if that dot product is positive, assign a`1.` Careful analysis of this "one of many" algorithms will show itssimilarity to the traditional matched filter.

There are also some immediate improvements to the "matched filter" and"correlation-type" that can provide enhanced ability to properly detectvery low level embedded code signals. Some of these improvements arederived from principles set forth in the Kassam book, others aregenerated by the inventor and the inventor has no knowledge of theirbeing developed in other papers or works, but neither has the inventordone fully extensive searching for advanced signal detection techniques.One such technique is perhaps best exemplified by FIG. 3.5 in Kassam onpage 79, wherein there are certain plots of the various locally optimumweighting coefficients which can apply to a general dot-productalgorithmic approach to detection. In other words, rather thanperforming a simple dot product, each elemental multiplication operationin an overall dot product can be weighted based upon known a prioristatistical information about the difference signal itself, i.e., thesignal within which the low level known signals are being sought. Theinterested reader who is not already familiar with these topics isencouraged to read chapter 3 of Kassam to gain a fuller understanding.

One principle which did not seem to be explicitly present in the Kassambook and which was developed rudimentarily by the inventor involves theexploitation of the magnitudes of the statistical properties of theknown signal being sought relative to the magnitude of the statisticalproperties of the suspect signal as a whole. In particular, theproblematic case seems to be where the embedded signals we are lookingfor are of much lower level than the noise and corruption present on adifference signal. FIG. 14 attempts to set the stage for the reasoningbehind this approach. The top figure 720 contains a generic look at thedifferences in the histograms between a typical "problematic" differencesignal, i.e., a difference signal which has a much higher overall energythan the embedded signals that may or may not be within it. The term"mean-removed" simply means that the means of both the difference signaland the embedded code signal have been removed, a common operation priorto performing a normalized dot product. The lower figure 722 then has agenerally similar histogram plot of the derivatives of the two signals,or in the case of an image, the scalar gradients. From pure inspectionit can be seen that a simple thresholding operation in the derivativetransform domain, with a subsequent conversion back into the signaldomain, will go a long way toward removing certain innate biases on thedot product "recognition algorithm" of a few paragraphs back.Thresholding here refers to the idea that if the absolute value of adifference signal derivative value exceeds some threshold, then it isreplaced simply by that threshold value. The threshold value can be sochosen to contain most of the histogram of the embedded signal.

Another operation which can be of minor assistance in "alleviating" someof the bias effects in the dot product algorithm is the removal of thelow order frequencies in the difference signal, i.e., running thedifference signal through a high pass filter, where the cutoff frequencyfor the high pass filter is relatively near the origin (or DC)frequency.

Special Considerations for Recognizing Embedded Codes on Signals WhichHave Been Compressed and Decompressed, or Alternatively, for RecognizingEmbedded Codes Within Any Signal Which Has Undergone Some Known ProcessWhich Creates Non-Uniform Error Sources

Long title for a basic concept. Some signal processing operations, suchas compressing and decompressing an image, as with the JPEG/MPEG formatsof image/video compression, create errors in some given transform domainwhich have certain correlations and structure. Using JPEG as an example,if a given image is compressed then decompressed at some highcompression ratio, and that resulting image is then fourier transformedand compared to the fourier transform of the original uncompressedimage, a definite pattern is clearly visible. This patterning isindicative of correlated error, i.e. error which can be to some extentquantified and predicted. The prediction of the grosser properties ofthis correlated error can then be used to advantage in theheretofore-discussed methods of recognizing the embedded code signalswithin some suspect image which may have undergone either JPEGcompression or any other operation which leaves these telltalecorrelated error signatures. The basic idea is that in areas where thereare known higher levels of error, the value of the recognition methodsis diminished relative to the areas with known lower levels ofcorrelated errors. It is often possible to quantify the expected levelsof error and use this quantification to appropriately weight theretransformed signal values. Using JPEG compression again as an example,a suspect signal can be fourier transformed, and the fourier spacerepresentation may clearly show the telltale box grid pattern. Thefourier space signal can then be "spatially filtered" near the gridpoints, and this filtered representation can then be transformed backinto its regular time or space domain to then be run through therecognition methods presented in this disclosure. Likewise, any signalprocessing method which creates non-uniform error sources can betransformed into the domain in which these error sources arenon-uniform, the values at the high points of the error sources can beattenuated, and the thusly "filtered" signal can be transformed backinto the time/space domain for standard recognition. Often this wholeprocess will include the lengthy and arduous step of "characterizing"the typical correlated error behavior in order to "design" theappropriate filtering profiles.

"SIGNATURE CODES" and "INVISIBLE SIGNATURES"

Briefly and for the sake of clarity, the phrases and terms "signatures,""invisible signatures," and "signature codes" have been and willcontinue to be used to refer to the general techniques of thistechnology and often refer specifically to the composite embedded codesignal as defined early on in this disclosure.

MORE DETAILS ON EMBEDDING SIGNATURE CODES INTO MOTION PICTURES

Just as there is a distinction made between the JPEG standards forcompressing still images and the MPEG standards for compressed motionimages, so too should there be distinctions made between placinginvisible signatures into still images and placing signatures intomotion images. As with the JPEG/MPEG distinction, it is not a matter ofdifferent foundations, it is the fact that with motion images a newdimension of engineering optimization opens up by the inclusion of timeas a parameter. Any textbook dealing with MPEG will surely contain asection on how MPEG is (generally) not merely applying JPEG on a frameby frame basis. It will be the same with the application of theprinciples of this technology: generally speaking, the placement ofinvisible signatures into motion image sequences will not be simplyindependently placing invisible signatures into one frame after thenext. A variety of time-based considerations come into play, somedealing with the psychophysics of motion image perception, others drivenby simple cost engineering considerations.

One embodiment actually uses the MPEG compression standard as a piece ofa solution. Other motion image compression schemes could equally well beused, be they already invented or yet to be invented. This example alsoutilizes the scrambled logo image approach to generating the mastersnowy image as depicted in FIG. 13 and discussed in the disclosure.

A "compressed master snowy image" is independently rendered as depictedin FIG. 15. "Rendered" refers to the generally well known technique invideo, movie and animation production whereby an image or sequence ofimages is created by constructive techniques such as computerinstructions or the drawing of animation cells by hand. Thus, "torender" a signature movie in this example is essentially to let either acomputer create it as a digital file or to design some custom digitalelectronic circuitry to create it.

The overall goal of the procedure outlined in FIG. 15 is to apply theinvisible signatures to the original movie 762 in such a way that thesignatures do not degrade the commercial value of the movie,memorialized by the side-by-side viewing, 768, AND in such a way thatthe signature optimally survives through the MPEG compression anddecompression process. As noted earlier, the use of the MPEG process inparticular is an example of the generic process of compression. Also itshould be noted that the example presented here has definite room forengineering variations. In particular, those practiced in the art ofmotion picture compression will appreciate the fact if we start out withtwo video streams A and B, and we compress A and B separately andcombine their results, then the resultant video stream C will notgenerally be the same as if we pre-added the video streams A and B andcompressed this resultant. Thus we have in general, e.g.:

    MPEG(A)+MPEG(B)=\=MPEG(A+B)

where=\=is not equal to. This is somewhat an abstract notion tointroduce at this point in the disclosure and will become more clear asFIG. 15 is discussed. The general idea, however, is that there will be avariety of algebras that can be used to optimize the pass-through of"invisible" signatures through compression procedures. Clearly, the sameprinciples as depicted in FIG. 15 also work on still images and the JPEGor any other still image compression standard.

Turning now to the details of FIG. 15, we begin with the simple steppingthrough of all Z frames of a movie or video. For a two hour movie playedat 30 frames per second, Z turns out to be (30*2*60*60) or 216,000. Theinner loop of 700, 702 and 704 merely mimics FIG. 13's steps. The logoframe optionally can change during the stepping through frames. The twoarrows emanating from the box 704 represent both the continuation of theloop 750 and the depositing of output frames into the rendered masterSnowy Image 752.

To take a brief but potentially appropriate digression at this point,the use of the concept of a Markov process brings certain clarity to thediscussion of optimizing the engineering implementation of the methodsof FIG. 15. Briefly, a Markov process is one in which a sequence ofevents takes place and in general there is no memory between one step inthe sequence and the next. In the context of FIG. 15 and a sequence ofimages, a Markovian sequence of images would be one in which there is noapparent or appreciable correlation between a given frame and the next.Imagine taking the set of all movies ever produced, stepping one frameat a time and selecting a random frame from a random movie to beinserted into an output movie, and then stepping through, say, oneminute or 1800 of these frames. The resulting "movie" would be a fineexample of a Markovian movie. One point of this discussion is thatdepending on how the logo frames are rendered and depending on how theencryption/scrambling step 702 is performed, the Master Snowy Movie 752will exhibit some generally quantifiable degree of Markoviancharacteristics. The point of this point is that the compressionprocedure itself will be affected by this degree of Markovian nature andthus needs to be accounted for in designing the process of FIG. 15.Likewise, and only in general, even if a fully Markovian movie iscreated in the High Brightness Master Snowy Movie, 752, then theprocessing of compressing and decompressing that movie 752, representedas the MPEG box 754, will break down some of the Markovian nature of 752and create at least a marginally non-Markovian compressed master SnowyMovie 756. This point will be utilized when the disclosure brieflydiscusses the idea of using multiple frames of a video stream in orderto find a single N-bit identification word, that is, the same N-bitidentification word may be embedded into several frames of a movie, andit is quite reasonable to use the information derived from thosemultiple frames to find that single N-bit identification word. Thenon-Markovian nature of 756 thus adds certain tools to reading andrecognizing the invisible signatures. Enough of this tangent.

With the intent of pre-conditioning the ultimately utilized Master SnowyMovie 756, we now send the rendered High Brightness Master Snowy Movie752 through both the MPEG compression AND decompression procedure 754.With the caveat previously discussed where it is acknowledged that theMPEG compression process is generally not distributive, the idea of thestep 754 is to crudely segregate the initially rendered Snowy Movie 752into two components, the component which survives the compressionprocess 754 which is 756, and the component which does not survive, alsocrudely estimated using the difference operation 758 to produce the"Cheap Master Snowy Movie" 760. The reason use is made of thedeliberately loose term "Cheap" is that we can later add this signaturesignal as well to a distributable movie, knowing that it probably won'tsurvive common compression processes but that nevertheless it canprovide "cheap" extra signature signal energy for applications orsituations which will never experience compression. [Thus it is at leastnoted in FIG. 15]. Back to FIG. 15 proper, we now have a rough cut atsignatures which we know have a higher likelihood of surviving intactthrough the compression process, and we use this "Compressed MasterSnowy Movie" 756 to then go through this procedure of being scaled down764, added to the original movie 766, producing a candidatedistributable movie 770, then compared to the original movie (768) toensure that it meets whatever commercially viable criteria which havebeen set up (i.e. the acceptable perceived noise level). The arrow fromthe side-by-side step 768 back to the scale down step 764 correspondsquite directly to the "experiment visually . . . " step of FIG. 2, andthe gain control 226 of FIG. 6. Those practiced in the art of image andaudio information theory can recognize that the whole of FIG. 15 can besummarized as attempting to pre-condition the invisible signaturesignals in such a way that they are better able to withstand even quiteappreciable compression. To reiterate a previously mentioned item aswell, this idea equally applies to ANY such pre-identifiable process towhich an image, and image sequence, or audio track might be subjected.This clearly includes the JPEG process on still images.

Additional Elements of the Realtime Encoder Circuitry

It should be noted that the method steps represented in FIG. 15,generally following from box 750 up through the creation of thecompressed master snowy movie 756, could with certain modification beimplemented in hardware. In particular, the overall analog noise source206 in FIG. 6 could be replaced by such a hardware circuit. Likewise thesteps and associated procedures depicted in FIG. 13 could be implementedin hardware and replace the analog noise source 206.

Recognition based on more than one frame: non-Markovian signatures

As noted in the digression on Markov and non-Markov sequences of images,it is pointed out once again that in such circumstances where theembedded invisible signature signals are non-Markovian in nature, i.e.,that there is some correlation between the master snowy image of oneframe to that of the next, AND furthermore that a single N-bitidentification word is used across a range of frames and that thesequence of N-bit identification words associated with the sequence offrames is not Markovian in nature, then it is possible to utilize thedata from several frames of a movie or video in order to recognize asingle N-bit identification word. All of this is a fancy way of sayingthat the process of recognizing the invisible signatures should use asmuch information as is available, in this case translating to multipleframes of a motion image sequence.

HEADER VERIFICATION

The concept of the "header" on a digital image or audio file is a wellestablished practice in the art. The top of FIG. 16 has a simplifiedlook at the concept of the header, wherein a data file begins withgenerally a comprehensive set of information about the file as a whole,often including information about who the author or copyright holder ofthe data is, if there is a copyright holder at all. This header 800 isthen typically followed by the data itself 802, such as an audio stream,a digital image, a video stream, or compressed versions of any of theseitems. This is all exceedingly known and common in the industry.

One way in which the principles of this technology can be employed inthe service of information integrity is generically depicted in thelower diagram of FIG. 16. In general, the N-bit identification word canbe used to essentially "wallpaper" a given simple message throughout animage (as depicted) or audio data stream, thereby reinforcing somemessage already contained in a traditional header. This is referred toas "header verification" in the title of this section. The thinking hereis that less sophisticated would-be pirates and abusers can alter theinformation content of header information, and the more securetechniques of this technology can thus be used as checks on the veracityof header information. Provided that the code message, such as "joe'simage" in the header, matches the repeated message throughout an image,then a user obtaining the image can have some higher degree ofconfidence that no alteration of the header has taken place.

Likewise, the header can actually carry the N-bit identification word sothat the fact that a given data set has been coded via the methods ofthis technology can be highlighted and the verification code built rightinto the header. Naturally, this data file format has not been createdyet since the principles of this technology are currently not beingemployed.

THE "BODIER": THE ABILITY TO LARGELY REPLACE A HEADER

Although all of the possible applications of the following aspect ofapplicant's technology are not fully developed, it is neverthelesspresented as a design alternative that may be important some day. Thetitle of this section contains the silly phrase used to describe thispossibility: the "bodier."

Whereas the previous section outlined how the N-bit identification wordcould "verify" information contained within the header of a digitalfile, there is also the prospect that these methods could completelyreplace the very concept of the header and place the information whichis traditionally stored in the header directly into the digital signaland empirical data itself.

This could be as simple as standardizing on, purely for example, a96-bit (12 bytes) leader string on an otherwise entirely empirical datastream. This leader string would plain and simple contain the numericlength, in elemental data units, of the entire data file not includingthe leader string, and the number of bits of depth of a single dataelement (e.g. its number of grey levels or the number of discrete signallevels of an audio signal). From there, universal codes as described inthis specification would be used to read the N-bit identification wordwritten directly within the empirical data. The length of the empiricaldata would need to be long enough to contain the full N bits. The N-bitword would effectively transmit what would otherwise be contained in atraditional header.

FIG. 17 depicts such a data format and calls it the "universal empiricaldata format." The leader string 820 is comprised of the 64 bit stringlength 822 and the 32 bit data word size 824. The data stream 826 thenimmediately follows, and the information traditionally contained in theheader but now contained directly in the data stream is represented asthe attached dotted line 828. Another term used for this attachedinformation is a "shadow channel" as also depicted in FIG. 17.

Yet another element that may need to be included in the leader string issome sort of complex check sum bits which can verify that the whole ofthe data file is intact and unaltered. This is not included in FIG. 17.

MORE ON DISTRIBUTED UNIVERSAL CODE SYSTEMS: DYNAMIC CODES

One intriguing variation on the theme of universal codes is thepossibility of the N-bit identification word actually containinginstructions which vary the operations of the universal code systemitself. One of many examples is immediately in order: a datatransmission is begun wherein a given block of audio data is fullytransmitted, an N-bit identification word is read knowing that the firstblock of data used universal codes #145 out of a set of 500, say, andthat part of the N-bit identification word thus found is theinstructions that the next block of data should be "analyzed" using theuniversal code set #411 rather than #145. In general, this technologycan thus be used as a method for changing on the fly the actual decodinginstructions themselves. Also in general, this ability to utilize"dynamic codes" should greatly increase the sophistication level of thedata verification procedures and increase the economic viability ofsystems which are prone to less sophisticated thwarting by hackers andwould-be pirates. The inventor does not believe that the concept ofdynamically changing decoding/decrypting instructions is novel per se,but the carrying of those instructions on the "shadow channel" ofempirical data does appear to be novel to the best of the inventor'sunderstanding. [Shadow channel was previously defined as yet anothervernacular phrase encapsulating the more steganographic proper elementsof this technology].

A variant on the theme of dynamic codes is the use of universal codes onsystems which have a priori assigned knowledge of which codes to usewhen. One way to summarize this possibility is the idea of "the dailypassword." The password in this example represents knowledge of whichset of universal codes is currently operative, and these changedepending on some set of application-specific circumstances. Presumablymany applications would be continually updating the universal codes toones which had never before been used, which is often the case with thetraditional concept of the daily password. Part of a currentlytransmitted N-bit identification word could be the passing on of thenext day's password, for example. Though time might be the most commontrigger events for the changing of passwords, there could be event basedtriggers as well.

SYMMETRIC PATTERNS AND NOISE PATTERNS: TOWARD A ROBUST UNIVERSAL CODINGSYSTEM

The placement of identification patterns into images is certainly notnew. Logos stamped into corners of images, subtle patterns such as truesignatures or the wallpapering of the copyright circle-C symbol, and thewatermark proper are all examples of placing patterns into images inorder to signify ownership or to try to prevent illicit uses of thecreative material.

What does appear to be novel is the approach of placing independent"carrier" patterns, which themselves are capable of being modulated withcertain information, directly into images and audio for the purposes oftransmission and discernment of said information, while effectivelybeing imperceptible and/or unintelligible to a perceiving human.Steganographic solutions currently known to the inventor all place thisinformation "directly" into empirical data (possibly first encrypted,then directly), whereas the methods of this disclosure posit thecreation of these (most-often) coextensive carrier signals, themodulation of those carrier signals with the information proper, THENthe direct application to the empirical data.

In extending these concepts one step further into the application arenaof universal code systems, where a sending site transmits empirical datawith a certain universal coding scheme employed and a receiving siteanalyzes said empirical data using the universal coding scheme, it wouldbe advantageous to take a closer look at the engineering considerationsof such a system designed for the transmission of images or motionimages, as opposed to audio. Said more clearly, the same type ofanalysis of a specific implementation such as is contained in FIG. 9 andits accompanying discussion on the universal codes in audio applicationsshould as well be done on imagery (or two dimensional signals). Thissection is such an analysis and outline of a specific implementation ofuniversal codes and it attempts to anticipate various hurdles that sucha method should clear.

The unifying theme of one implementation of a universal coding systemfor imagery and motion imagery is "symmetry." The idea driving thiscouldn't be more simple: a prophylactic against the use of imagerotation as a means for less sophisticated pirates to bypass any givenuniversal coding system. The guiding principle is that the universalcoding system should easily be read no matter what rotationalorientation the subject imagery is in. These issues are quite common inthe fields of optical character recognition and object recognition, andthese fields should be consulted for further tools and tricks infurthering the engineering implementation of this technology. As usual,an immediate example is in order.

Digital Video And Internet Company XYZ has developed a delivery systemof its product which relies on a non-symmetric universal coding whichdouble checks incoming video to see if the individual frames of videoitself, the visual data, contain XYZ's own relatively high securityinternal signature codes using the methods of this technology. Thisworks well and fine for many delivery situations, including theirInternet tollgate which does not pass any material unless both theheader information is verified AND the in-frame universal codes arefound. However, another piece of their commercial network performsmundane routine monitoring on Internet channels to look for unauthorizedtransmission of their proprietary creative property. They control theencryption procedures used, thus it is no problem for them to unencryptcreative property, including headers, and perform straightforwardchecks. A pirate group that wants to traffic material on XYZ's networkhas determined how to modify the security features in XYZ's headerinformation system, and they have furthermore discovered that by simplyrotating imagery by 10 or 20 degrees, and transmitting it over XYZ'snetwork, the network doesn't recognize the codes and therefore does notflag illicit uses of their material, and the receiver of the pirate'srotated material simply unrotates it.

Summarizing this last example via logical categories, the non-symmetricuniversal codes are quite acceptable for the "enablement of authorizedaction based on the finding of the codes," whereas it can be somewhateasily by-passed in the case of "random monitoring (policing) for thepresence of codes." [Bear in mind that the non-symmetric universal codesmay very well catch 90% of illicit uses, i.e. 90% of the illicit userswouldn't bother even going to the simple by-pass of rotation.] Toaddress this latter category, the use of quasi-rotationally symmetricuniversal codes is called for. "Quasi" derives from the age old squaringthe circle issue, in this instance translating into not quite being ableto represent a full incrementally rotational symmetric 2-D object on asquare grid of pixels. Furthermore, basic considerations must be madefor scale/magnification changes of the universal codes. It is understoodthat the monitoring process must be performed when the monitored visualmaterial is in the "perceptual" domain, i.e. when it has beenunencrypted or unscrambled and in the form with which it is (or wouldbe) presented to a human viewer. Would-be pirates could attempt to useother simple visual scrambling and unscrambling techniques, and toolscould be developed to monitor for these telltale scrambled signals. Saidanother way, would-be pirates would then look to transform visualmaterial out of the perceptual domain, pass by a monitoring point, andthen transform the material back into the perceptual domain; tools otherthan the monitoring for universal codes would need to be used in suchscenarios. The monitoring discussed here therefore applies toapplications where monitoring can be performed in the perceptual domain,such as when it is actually sent to viewing equipment.

The "ring" is the only full rotationally symmetric two dimensionalobject. The "disk" can be seen as a simple finite series of concentricand perfectly abutted rings having width along their radial axis. Thus,the "ring" needs to be the starting point from which a more robustuniversal code standard for images is found. The ring also will fitnicely into the issue of scale/magnification changes, where the radiusof a ring is a single parameter to keep track of and account for.Another property of the ring is that even the case where differentialscale changes are made to different spatial axes in an image, and thering turns into an oval, many of the smooth and quasi-symmetricproperties that any automated monitoring system will be looking for aregenerally maintained. Likewise, appreciable geometric distortion of anyimage will clearly distort rings but they can still maintain grosssymmetric properties. Hopefully, more pedestrian methods such as simply"viewing" imagery will be able to detect attempted illicit piracy inthese regards, especially when such lengths are taken to by-pass theuniversal coding system.

Rings to Knots

Having discovered the ring as the only ideal symmetric pattern uponwhose foundation a full rotationally robust universal coding system canbe built, we must turn this basic pattern into something functional,something which can carry information, can be read by computers andother instrumentation, can survive simple transformations andcorruptions, and can give rise to reasonably high levels of security(probably not unbreakable, as the section on universal codes explained)in order to keep the economics of subversion as a simple incrementalcost item.

One embodiment of the "ring-based" universal codes is what the inventorrefers to as "knot patterns" or simply "knots," in deference to wovenCeltic knot patterns which were later refined and exalted in the worksof Leonardo Da Vinci (e.g. Mona Lisa, or his knot engravings). Somerumors have it that these drawings of knots were indeed steganographicin nature, i.e. conveying messages and signatures; all the moreappropriate. FIGS. 18 and 19 explore some of the fundamental propertiesof these knots.

Two simple examples of knot patterns are depicted by the supra-radialknots, 850 and the radial knots 852. The names of these types are basedon the central symmetry point of the splayed rings and whether theconstituent rings intersect this point, are fully outside it, or in thecase of sub-radial knots the central point would be inside a constituentcircle. The examples of 850 and 852 clearly show a symmetricalarrangement of 8 rings or circles. "Rings" is the more appropriate term,as discussed above, in that this term explicitly acknowledges the widthof the rings along the radial axis of the ring. It is each of theindividual rings in the knot patterns 850 and 852 which will be thecarrier signal for a single associated bit plane in our N-bitidentification word. Thus, the knot patterns 850 and 852 each are an8-bit carrier of information. Specifically, assuming now that the knotpatterns 850 and 852 are luminous rings on a black background, then the"addition" of a luminous ring to an independent source image couldrepresent a "1" and the "subtraction" of a luminous ring from anindependent source image could represent a "0." The application of thissimple encoding scheme could then be replicated over and over as in FIG.19 and its mosaic of knot patterns, with the ultimate step of adding ascaled down version of this encoded (modulated) knot mosaic directly andcoextensively to the original image, with the resultant being thedistributable image which has been encoded via this universal symmetriccoding method. It remains to communicate to a decoding system which ringis the least significant bit in our N-bit identification word and whichis the most significant. One such method is to make a slightly ascendingscale of radii values (of the individual rings) from the LSB to the MSB.Another is to merely make the MSB, say, 10% larger radius than all theothers and to pre-assign counterclockwise as the order with which theremaining bits fall out. Yet another is to put some simple hash markinside one and only one circle. In other words, there are a variety ofways with which the bit order of the rings can be encoded in these knotpatterns.

A procedure for, first, checking for the mere existence of these knotpatterns and, second, for reading of the N-bit identification word, isas follows. A suspect image is first fourier transformed via theextremely common 2D FFT computer procedure. Assuming that we don't knowthe exact scale of the knot patterns, i.e., we don't know the radius ofan elemental ring of the knot pattern in the units of pixels, and thatwe don't know the exact rotational state of a knot pattern, we merelyinspect (via basic automated pattern recognition methods) the resultingmagnitude of the Fourier transform of the original image for telltaleripple patterns (concentric low amplitude sinusoidal rings on top of thespatial frequency profile of a source image). The periodicity of theserings, along with the spacing of the rings, will inform us that theuniversal knot patterns are or are not likely present, and their scalein pixels. Classical small signal detection methods can be applied tothis problem just as they can to the other detection methodologies ofthis disclosure. Common spatial filtering can then be applied to thefourier transformed suspect image, where the spatial filter to be usedwould pass all spatial frequencies which are on the crests of theconcentric circles and block all other spatial frequencies. Theresulting filtered image would be fourier transformed out of the spatialfrequency domain back into the image space domain, and almost by visualinspection the inversion or non-inversion of the luminous rings could bedetected, along with identification of the MSB or LSB ring, and the (inthis case 8) N-bit identification code word could be found. Clearly, apattern recognition procedure could perform this decoding step as well.

The preceding discussion and the method it describes has certainpractical disadvantages and shortcomings which will now be discussed andimproved upon. The basic method was presented in a simple-minded fashionin order to communicate the basic principles involved.

Let's enumerate a few of the practical difficulties of the abovedescribed universal coding system using the knot patterns. For one (1),the ring patterns are somewhat inefficient in their "covering" of thefull image space and in using all of the information carrying capacityof an image extent. Second (2), the ring patterns themselves will almostneed to be more visible to the eye if they are applied, say, in astraightforward additive way to an 8-bit black and white image. Next(3), the "8" rings of FIG. 18, 850 and 852, is a rather low number, andmoreover, there is a 22 and one half degree rotation which could beapplied to the figures which the recognition methods would need tocontend with (360 divided by 8 divided by 2). Next (4), strictoverlapping of rings would produce highly condensed areas where theadded and subtracted brightness could become quite appreciable. Next(5), the 2D FFT routine used in the decoding is notoriouslycomputationally cumbersome as well as some of the pattern recognitionmethods alluded to. Finally (6), though this heretofore described formof universal coding does not pretend to have ultra-high security in theclassical sense of top security communications systems, it wouldnevertheless be advantageous to add certain security features whichwould be inexpensive to implement in hardware and software systems whichat the same time would increase the cost of would-be pirates attemptingto thwart the system, and increase the necessary sophistication level ofthose pirates, to the point that a would-be pirate would have to go sofar out of their way to thwart the system that willfulness would beeasily proven and hopefully subject to stiff criminal liability andpenalty (such as the creation and distribution of tools which stripcreative property of these knot pattern codes).

All of these items can be addressed and should continue to be refinedupon in any engineering implementation of the principles of thetechnology. This disclosure addresses these items with reference to thefollowing embodiments.

Beginning with item number 3, that there are only 8 rings represented inFIG. 18 is simply remedied by increasing the number of rings. The numberof rings that any given application will utilize is clearly a functionof the application. The trade-offs include but are not limited to: onthe side which argues to limit the number of rings utilized, there willultimately be more signal energy per ring (per visibility) if there areless rings; the rings will be less crowded so that there discernment viaautomated recognition methods will be facilitated; and in general sincethey are less crowded, the full knot pattern can be contained using asmaller overall pixel extent, e.g. a 30 pixel diameter region of imagerather than a 100 pixel diameter region. The arguments to increase thenumber of rings include: the desire to transmit more information, suchas ascii information, serial numbers, access codes, allowed use codesand index numbers, history information, etc.; another key advantage ofhaving more rings is that the rotation of the knot pattern back intoitself is reduced, thereby allowing the recognition methods to deal witha smaller range of rotation angles (e.g., 64 rings will have a maximumrotational displacement of just under 3 degrees, i.e. maximallydissimilar to its original pattern, where a rotation of about 5 and onehalf degrees brings the knot pattern back into its initial alignment;the need to distinguish the MSB/LSB and the bit plane order is betterseen in this example as well). It is anticipated that most practicalapplications will choose between 16 and 128 rings, corresponding to N=16to N=128 for the choice of the number of bits in the N-bitidentification code word. The range of this choice would somewhatcorrelate to the overall radius, in pixels, allotted to an elementalknot pattern such as 850 or 852.

Addressing the practical difficulty item number 4, that of thecondensation of rings patterns at some points in the image and lack ofring patterns in others (which is very similar, but still distinct from,item 1, the inefficient covering), the following improvement can beapplied. FIG. 18 shows an example of a key feature of a "knot" (asopposed to a pattern of rings) in that where patterns would supposedlyintersect, a virtual third dimension is posited whereby one strand ofthe knot takes precedence over another strand in some predefined way;see item 854. In the terms of imagery, the brightness or dimness of agiven intersection point in the knot patterns would be "assigned" to oneand only one strand, even in areas where more than two strands overlap.The idea here is then extended, 864, to how rules about this assignmentshould be carried out in some rotationally symmetric manner. Forexample, a rule would be that, travelling clockwise, an incoming strandto a loop would be "behind" an outgoing strand. Clearly there are amultitude of variations which could be applied to these rules, manywhich would critically depend on the geometry of the knot patternschosen. Other issues involved will probably be that the finite width,and moreover the brightness profile of the width along the normal axisto the direction of a strand, will all play a role in the rules ofbrightness assignment to any given pixel underlying the knot patterns.

A major improvement to the nominal knot pattern system previouslydescribed directly addresses practical difficulties (1), the inefficientcovering, (2) the unwanted visibility of the rings, and (6) the need forhigher levels of security. This improvement also indirectly address item(4) the overlapping issue, which has been discussed in the lastparagraph. This major improvement is the following: just prior to thestep where the mosaic of the encoded knot patterns is added to anoriginal image to produce a distributable image, the mosaic of encodedknot patterns, 866, is spatially filtered (using common 2D FFTtechniques) by a standardized and (generally smoothly) random phase-onlyspatial filter. It is very important to note that this phase-only filteris itself fully rotationally symmetric within the spatial frequencydomain, i.e. its filtering effects are fully rotationally symmetric. Theeffect of this phase-only filter on an individual luminous ring is totransform it into a smoothly varying pattern of concentric rings, nottotally dissimilar to the pattern on water several instances after apebble is dropped in, only that the wave patterns are somewhat random inthe case of this phase-only filter rather than the uniform periodicityof a pebble wave pattern. FIG. 20 attempts to give a rough (i.e.non-greyscale) depiction of these phase-only filtered ring patterns. Thetop figure of FIG. 20 is a cross section of a typical brightnesscontour/profile 874 of one of these phase-only filtered ring patterns.Referenced in the figure is the nominal location of the pre-filteredouter ring center, 870. The center of an individual ring, 872, isreferenced as the point around which the brightness profile is rotatedin order to fully describe the two dimensional brightness distributionof one of these filtered patterns. Yet another rough attempt tocommunicate the characteristics of the filtered ring is depicted as 876,a crude greyscale image of the filtered ring. This phase-only filteredring, 876 will can be referred to as a random ripple pattern.

Not depicted in FIG. 20 is the composite effects of phase-only filteringon the knot patterns of FIG. 18, or on the mosaic of knot patterns 866in FIG. 19. Each of the individual rings in the knot patterns 850 or 852will give rise to a 2D brightness pattern of the type 876, and togetherthey form a rather complicated brightness pattern. Realizing that theencoding of the rings is done by making it luminous (1) or"anti-luminous" (0), the resulting phase-only filtered knot patternsbegin to take on subtle characteristics which no longer make directsense to the human eye, but which are still readily discernable to acomputer especially after the phase-only filtering is inverse filteredreproducing the original rings patterns.

Returning now to FIG. 19, we can imagine that an 8-bit identificationword has been encoded on the knot patterns and the knot patternsphase-only filtered. The resulting brightness distribution would be arich tapestry of overlapping wave patterns which would have a certainbeauty, but would not be readily intelligible to the eye/brain. [Anexception to this might draw from the lore of the South Pacific Islandcommunities, where it is said that sea travellers have learned thesubtle art of reading small and multiply complex ocean wave patterns,generated by diffracted and reflected ocean waves off of interveningislands, as a primary navigational tool.] For want of a better term, theresulting mosaic of filtered knot patterns (derived from 866) can becalled the encoded knot tapestry or just the knot tapestry. Some basicproperties of this knot tapestry are that it retains the basicrotational symmetry of its generator mosaic, it is generallyunintelligible to the eye/brain, thus raising it a notch on thesophistication level of reverse engineering, it is more efficient atusing the available information content of a grid of pixels (more onthis in the next section), and if the basic knot concepts 854 and 864are utilized, it will not give rise to local "hot spots" where thesignal level becomes unduly condensed and hence objectionably visible toa viewer.

The basic decoding process previously described would now need theadditional step of inverse filtering the phase-only filter used in theencoding process. This inverse filtering is quite well known in theimage processing industry. Provided that the scale of the knot patternsare known a priori, the inverse filtering is straightforward. If on theother hand the scale of the knot patterns is not known, then anadditional step of discovering this scale is in order. One such methodof discovering the scale of the knot patterns is to iteratively applythe inverse phase-only filter to variously scaled version of an imagebeing decoded, searching for which scale-version begins to exhibitnoticeable knot patterning. A common search algorithm such as thesimplex method could be used in order to accurately discover the scaleof the patterns. The field of object recognition should also beconsulted, under the general topic of unknown-scale object detection.

An additional point about the efficiency with which the knot tapestrycovers the image pixel grid is in order. Most applications of the knottapestry method of universal image coding will posit the application ofthe fully encoded tapestry (i.e. the tapestry which has the N-bitidentification word embedded) at a relative low brightness level intothe source image. In real terms, the brightness scale of the encodedtapestry will vary from, for example, -5 grey scale values to 5 greyscale values in a typical 256 grey scale image, where the preponderanceof values will be within -2 and 2. This brings up the purely practicalmatter that the knot tapestry will be subject to appreciable bittruncation error. Put as an example, imagine a constructed knot tapestrynicely utilizing a full 256 grey level image, then scaling this down bya factor of 20 in brightness including the bit truncation step, thenresealing this truncated version back up in brightness by the samefactor of 20, then inverse phase-only filtering the resultant. Theresulting knot pattern mosaic will be a noticeably degraded version ofthe original knot pattern mosaic. The point of bringing all of this upis the following: it will be a simply defined, but indeed challenging,engineering task to select the various free parameters of design in theimplementation of the knot tapestry method, the end goal being to pass amaximum amount of information about the N-bit identification word withinsome pre-defined visibility tolerance of the knot tapestry. The freeparameters include but would not be fully limited to: the radius of theelemental ring in pixels, N or the number of rings, the distance inpixels from the center of a knot pattern to the center of an elementalring, the packing criteria and distances of one knot pattern with theothers, the rules for strand weaving, and the forms and types ofphase-only filters to be used on the knot mosaics. It would be desirableto feed such parameters into a computer optimization routine which couldassist in their selection. Even this would begin surely as more of anart than a science due to the many non-linear free parameters involved.

A side note on the use of phase-only filtering is that it can assist inthe detection of the ring patterns. It does so in that the inversefiltering of the decoding process tends to "blur" the underlying sourceimage upon which the knot tapestry is added, while at the same time"bringing into focus" the ring patterns. Without the blurring of thesource image, the emerging ring patterns would have a harder time"competing" with the sharp features of typical images. The decodingprocedure should also utilize the gradient thresholding method describedin another section. Briefly, this is the method where if it is knownthat a source signal is much larger in brightness than our signaturesignals, then an image being decoded can have higher gradient areasthresholded in the service of increasing the signal level of thesignature signals relative to the source signal.

As for the other practical difficulty mentioned earlier, item (5) whichdeals with the relative computational overhead of the 2D FFT routine andof typical pattern recognition routines, the first remedy here positedbut not filled is to find a simpler way of quickly recognizing anddecoding the polarity of the ring brightnesses than that of using the 2DFFT. Barring this, it can be seen that if the pixel extent of anindividual knot pattern (850 or 852) is, for example, 50 pixels indiameter, than a simple 64 by 64 pixel 2D FFT on some section of animage may be more than sufficient to discern the N-bit identificationword as previously described. The idea would be to use the smallestimage region necessary, as opposed to being required to utilize anentire image, to discern the N-bit identification word.

Another note is that those practitioners in the science of imageprocessing will recognize that instead of beginning the discussion onthe knot tapestry with the utilization of rings, we could have insteadjumped right to the use of 2D brightness distribution patterns 876, QUAbases functions. The use of the "ring" terminology as the baselinetechnology is partly didactic, as is appropriate for patent disclosuresin any event. What is more important, perhaps, is that the use of true"rings" in the decoding process, post-inverse filtering, is probably thesimplest form to input into typical pattern recognition routines.

Neural Network Decoders

Those skilled in the signal processing art will recognize that computersemploying neural network architectures are well suited to the patternrecognition and detection-of-small-signal-in-noise issues posed by thepresent technology. While a complete discourse on these topics is beyondthe scope of this specification, the interested reader is referred to,e.g., Cherkassky, V., "From Statistics to Neural Networks: Theory &Pattern Recognition Applications," Springer-Verlag, 1994; Masters, T.,"Signal & Image Processing with Neural Networks: C Sourcebook," Wiley,1994; Guyon, I, "Advances in Pattern Recognition Systems Using NeuralNetworks," World Scientific Publishers, 1994; Nigrin, A., "NeuralNetworks for Pattern Recognition," MIT Press, 1993; Cichoki, A., "NeuralNetworks for Optimization & Signal Processing," Wiley, 1993; and Chen,C., "Neural Networks for Pattern Recognition & Their Applications,"World Scientific Publishers, 1991.

2D UNIVERSAL CODES II: SIMPLE SCAN LINE IMPLEMENTATION OF THE ONEDIMENSIONAL CASE

The above section on rings, knots and tapestries certainly has itsbeauty, but some of the steps involved may have enough complexity thatpractical implementations may be too costly for certain applications. Apoor cousin the concept of rings and well-designed symmetry is to simplyutilize the basic concepts presented in connection with FIG. 9 and theaudio signal, and apply them to two dimensional signals such as images,but to do so in a manner where, for example, each scan line in an imagehas a random starting point on, for example, a 1000 pixel long universalnoise signal. It would then be incumbent upon recognition software andhardware to interrogate imagery across the fall range of rotationalstates and scale factors to "find" the existence of these universalcodes.

THE UNIVERSAL COMMERCIAL COPYRIGHT (UCC) IMAGE, AUDIO, AND VIDEO FILEFORMATS

It is as well known as it is regretted that there exist a plethora offile format standards (and not-so-standards) for digital images, digitalaudio, and digital video. These standards have generally been formedwithin specific industries and applications, and as the usage andexchange of creative digital material proliferated, the various fileformats slugged it out in cross-disciplinary arenas, where today we finda de facto histogram of devotees and users of the various favoriteformats. The JPEG, MPEG standards for formatting and compression areonly slight exceptions it would seem, where some concertedcross-industry collaboration came into play.

The cry for a simple universal standard file format for audio/visualdata is as old as the hills. The cry for the protection of such materialis older still. With all due respect to the innate difficultiesattendant upon the creation of a universal format, and with all duerespect to the pretentiousness of outlining such a plan within a patentdisclosure, the inventor does believe that these methods can serveperhaps as well as anything for being the foundation upon which anaccepted world-wide "universal commercial copyright" format is built.Practitioners know that such animals are not built by proclamation, butthrough the efficient meeting of broad needs, tenacity, and luck. Moregermane to the purposes of this disclosure is the fact that theapplication of this technology would benefit if it could become acentral piece within an industry standard file format. The use ofuniversal codes in particular could be specified within such a standard.The fullest expression of the commercial usage of this technology comesfrom the knowledge that the invisible signing is taking place and theconfidence that instills in copyright holders.

The following is a list of reasons that the principles of thistechnology could serve as the catalyst for such a standard: (1) Few ifany technical developments have so isolated and so pointedly addressedthe issue of broad-brush protection of empirical data and audio/visualmaterial; (2) All previous file formats have treated the informationabout the data, and the data itself, as two separate and physicallydistinct entities, whereas the methods of this technology can combinethe two into one physical entity; (3) The mass scale application of theprinciples of this technology will require substantial standardizationwork in the first place, including integration with the years-to-comeimprovements in compression technologies, so the standardsinfrastructure will exist by default; (4) the growth of multimedia hascreated a generic class of data called "content," which includes text,images, sound, and graphics, arguing for higher and higher levels of"content standards"; and (5) marrying copyright protection technologyand security features directly into a file format standard is longoverdue.

Elements of a universal standard would certainly include the mirroringaspects of the header verification methods, where header information isverified by signature codes directly within data. Also, a universalstandard would outline how hybrid uses of fully private codes and publiccodes would commingle. Thus, if the public codes were "stripped" bysophisticated pirates, the private codes would remain intact. Auniversal standard would specify how invisible signatures would evolveas digital images and audio evolve. Thus, when a given image is createdbased on several source images, the standard would specify how and whenthe old signatures would be removed and replaced by new signatures, andif the header would keep track of these evolutions and if the signaturesthemselves would keep some kind of record.

PIXELS VS. BUMPS

Most of the disclosure focuses on pixels being the basic carriers of theN-bit identification word. The section discussing the use of a single"master code signal" went so far as to essentially "assign" each andevery pixel to a unique bit plane in the N-bit identification word.

For many applications, with one exemplar being that of ink basedprinting at 300 dots per inch resolution, what was once a pixel in apristine digital image file becomes effectively a blob (e.g. of ditheredink on a piece of paper). Often the isolated information carryingcapacity of the original pixel becomes compromised by neighboring pixelsspilling over into the geometrically defined space of the originalpixel. Those practiced in the art will recognize this as simple spatialfiltering and various forms of blurring.

In such circumstances it may be more advantageous to assign a certainhighly local group of pixels to a unique bit plane in the N-bitidentification word, rather than merely a single pixel. The end goal issimply to pre-concentrate more of the signature signal energy into thelower frequencies, realizing that most practical implementations quicklystrip or mitigate higher frequencies.

A simple-minded approach would be to assign a 2 by 2 block of pixels allto be modulated with the same ultimate signature grey value, rather thanmodulating a single assigned pixel. A more fancy approach is depicted inFIGS. 21A and 21B, where an array of pixel groups is depicted. This is aspecific example of a large class of configurations. The idea is thatnow a certain small region of pixels is associated with a given uniquebit plane in the N-bit identification word, and that this groupingactually shares pixels between bit planes (though it doesn't necessaryhave to share pixels, as in the case of a 2×2 block of pixels above).

Depicted in FIGS. 21A and 21B is a 3×3 array of pixels with an examplenormalized weighting (normalized-->, the weights add up to 1). Themethods of this technology now operate on this elementary "bump," as aunit, rather than on a single pixel. It can be seen that in this examplethere is a fourfold decrease in the number of master code values thatneed to be stored, due to the spreading out of the signature signal.Applications of this "bump approach" to placing in invisible signaturesinclude any application which will experience a priori known highamounts of blurring, where proper identification is still desired evenafter this heavy blurring.

MORE ON THE STEGANOGRAPHIC USES OF THIS TECHNOLOGY

As mentioned in the initial sections of the disclosure, steganography asan art and as a science is a generic prior art to this technology.Putting the shoe on the other foot now, and as already doubtlessapparent to the reader who has ventured thus far, the methods of thistechnology can be used as a novel method for performing steganography.(Indeed, all of the discussion thus far may be regarded as exploringvarious forms and implementations of steganography.)

In the present section, we shall consider steganography as the need topass a message from point A to point B, where that message isessentially hidden within generally independent empirical data. Asanyone in the industry of telecommunications can attest to, the range ofpurposes for passing messages is quite broad. Presumably there would besome extra need, beyond pure hobby, to place messages into empiricaldata and empirical signals, rather than sending those messages via anynumber of conventional and straightforward channels. Past literature andproduct propaganda within steganography posits that such an extra need,among others, might be the desire to hide the fact that a message iseven being sent. Another possible need is that a conventionalcommunications channel is not available directly or is cost prohibitive,assuming, that is, that a sender of messages can "transmit" theirencoded empirical data somehow. This disclosure includes by referenceall previous discussions on the myriad uses to which steganography mightapply, while adding the following uses which the inventor has notpreviously seen described.

The first such use is very simple. It is the need to carry messagesabout the empirical data within which the message is carried. The littlejoke is that now the media is truly the message, though it would be nextto impossible that some previous steganographer hasn't already exploitedthis joke. Some of the discussion on placing information about theempirical data directly inside that empirical data was already coveredin the section on replacing the header and the concept of the "bodier."This section expands upon that section somewhat.

The advantages of placing a message about empirical data directly inthat data is that now only one class of data object is present ratherthan the previous two classes. In any two class system, there is therisk of the two classes becoming disassociated, or one class corruptedwithout the other knowing about it. A concrete example here is what theinventor refers to as "device independent instructions."

There exist zillions of machine data formats and data file formats. Thisplethora of formats has been notorious in its power to impede progresstoward universal data exchange and having one machine do the same thingthat another machine can do. The instructions that an originator mightput into a second class of data (say the header) may not at all becompatible with a machine which is intended to recognize theseinstructions. If format conversions have taken place, it is alsopossible that critical instructions have been stripped along the way, orgarbled. The improvements disclosed here can be used as a way to "sealin" certain instructions directly into empirical data in such a way thatall that is needed by a reading machine to recognize instructions andmessages is to perform a standardized "recognition algorithm" on theempirical data (providing of course that the machine can at the veryleast "read" the empirical data properly). All machines could implementthis algorithm any old way they choose, using any compilers or internaldata formats that they want.

Implementation of this device independent instruction method wouldgenerally not be concerned over the issue of piracy or illicit removalof the sealed in messages. Presumably, the embedded messages andinstructions would be a central valuable component in the basic valueand functioning of the material.

Another example of a kind of steganographic use of the technology is theembedding of universal use codes for the benefit of a user community.The "message" being passed could be simply a registered serial numberidentifying ownership to users who wish to legitimately use and pay forthe empirical information. The serial number could index into a vastregistry of creative property, containing the name or names of theowners, pricing information, billing information, and the like. The"message" could also be the clearance of free and public use for somegiven material. Similar ownership identification and use indexing can beachieved in two class data structure methods such as a header, but theuse of the single class system of this technology may offer certainadvantages over the two class system in that the single class systemdoes not care about file format conversion, header compatibilities,internal data format issues, header/body archiving issues, and mediatransformations.

Fully Exact Steganography

Prior art steganographic methods currently known to the inventorgenerally involve fully deterministic or "exact" prescriptions forpassing a message. Another way to say this is that it is a basicassumption that for a given message to be passed correctly in itsentirety, the receiver of the information needs to receive the exactdigital data file sent by the sender, tolerating no bit errors or "loss"of data. By definition, "lossy" compression and decompression onempirical signals defeat such steganographic methods. (Prior art, suchas the previously noted Komatsu work, are the exceptions here.)

The principles of this technology can also be utilized as an exact formof steganography proper. It is suggested that such exact forms ofsteganography, whether those of prior art or those of this technology,be combined with the relatively recent art of the "digital signature"and/or the DSS (digital signature standard) in such a way that areceiver of a given empirical data file can first verify that not onesingle bit of information has been altered in the received file, andthus verify that the contained exact steganographic message has not beenaltered.

The simplest way to use the principles of this technology in an exactsteganographic system is to utilize the previously discussed "designed"master noise scheme wherein the master snowy code is not allowed tocontain zeros. Both a sender and a receiver of information would needaccess to BOTH the master snowy code signal AND the original unencodedoriginal signal. The receiver of the encoded signal merely subtracts theoriginal signal giving the difference signal and the techniques ofsimple polarity checking between the difference signal and the mastersnowy code signal, data sample to data sample, producing a the passedmessage a single bit at a time. Presumably data samples with values nearthe "rails" of the grey value range would be skipped (such as the values0,1,254 and 255 in 8-bit depth empirical data).

Statistical Steganography

The need for the receiver of a steganographic embedded data file to haveaccess to the original signal can be removed by turning to what theinventor refers to as "statistical steganography." In this approach, themethods of this technology are applied as simple a priori rulesgoverning the reading of an empirical data set searching for an embeddedmessage. This method also could make good use of it combination withprior art methods of verifying the integrity of a data file, such aswith the DSS. (See, e.g., Walton, "Image Authentication for a SlipperyNew Age," Dr. Dobb's Journal, April, 1995, p. 18 for methods ofverifying the sample-by-sample, bit-by-bit, integrity of a digitalimage.)

Statistical steganography posits that a sender and receiver both haveaccess to the same master snowy code signal. This signal can be entirelyrandom and securely transmitted to both parties, or generated by ashared and securely transmitted lower order key which generates a largerquasi-random master snowy code signal. It is a priori defined that 16bit chunks of a message will be passed within contiguous 1024 sampleblocks of empirical data, and that the receiver will use dot productdecoding methods as outlined in this disclosure. The sender of theinformation pre-checks that the dot product approach indeed produces theaccurate 16 bit values (that is, the sender pre-checks that thecross-talk between the carrier image and the message signal is not suchthat the dot product operation will produce an unwanted inversion of anyof the 16 bits). Some fixed number of 1024 sample blocks are transmittedand the same number times 16 bits of message is therefore transmitted.DSS techniques can be used to verify the integrity of a message when thetransmitted data is known to only exist in digital form, whereasinternal checksum and error correcting codes can be transmitted insituations where the data may be subject to change and transformation inits transmission. In this latter case, it is best to have longer blocksof samples for any given message content size (such as 10K samples for a16 bit message chunk, purely as an example).

Continuing for a moment on the topic of error correcting steganography,it will be recognized that many decoding techniques disclosed hereinoperate on the principle of distinguishing pixels (or bumps) which havebeen augmented by the encoded data from those that have been diminishedby the encoded data. The distinguishing of these positive and negativecases becomes increasingly difficult as the delta values (e.g. thedifference between an encoded pixel and the corresponding originalpixel) approach zero.

An analogous situation arises in certain modem transmission techniques,wherein an ambiguous middle ground separates the two desired signalstates (e.g. +/-1). Errors deriving from incorrect interpretation ofthis middle ground are sometimes termed "soft errors." Principles frommodem technology, and other technologies where such problems arise, canlikewise be applied to mitigation of such errors in the present context.

One approach is to weight the "confidence" of each delta determination.If the pixel (bump) clearly reflects one state or the other (e.g. +/-1),its "confidence" is said to be high, and it is given a proportionatelygreater weighting. Conversely, if the pixel (bump) is relativelyambiguous in its interpretation, its confidence is commensurately lower,and it is given a proportionately lesser weighting. By weighting thedata from each pixel (bump) in accordance with its confidence value, theeffects of soft errors can be greatly reduced.

The foregoing procedure, while theoretically simple, relies onweightings which are best determined empirically. Accordingly, such anapproach is not necessarily straightforward.

An alternative approach is to assign confidence values not tointerpretations of individual pixels, but rather to determination of bitvalues--either from an image excerpt, or across the entire image. Insuch an arrangement, each decoded message bit is given a confidencevalue depending on the ambiguity (or not) of the image statistics bywhich its value was determined.

Such confidence weighting can also be used as a helpful adjunct withother error detecting/correcting schemes. For example, in known errorcorrecting polynomials, the above-detailed weighting parameters can beused to further hone polynomial-based discernment of an error'slocation.

THE "NOISE" IN VECTOR GRAPHICS AND VERY-LOW-ORDER INDEXED GRAPHICS

The methods of this disclosure generally posit the existence of"empirical signals," which is another way of saying signals which havenoise contained within them almost by definition. There are two classesof 2 dimensional graphics which are not generally considered to havenoise inherent in them: vector graphics and certain indexed bit-mappedgraphics. Vector graphics and vector graphic files are generally fileswhich contain exact instructions for how a computer or printer drawslines, curves and shapes. A change of even one bit value in such a filemight change a circle to a square, as a very crude example. In otherwords, there is generally no "inherent noise" to exploit within thesefiles. Indexed bit-mapped graphics refers to images which are composedof generally a small number of colors or grey values, such as 16 in theearly CGA displays on PC computers. Such "very-low-order" bit-mappedimages usually display graphics and cartoons, rather than being used inthe attempted display of a digital image taken with a camera of thenatural world. These types of very-low-order bit-mapped graphics alsoare generally not considered to contain "noise" in the classic sense ofthat term. The exception is where indexed graphic files do indeedattempt to depict natural imagery, such as with the GIF (graphicinterchange format of Compuserve), where the concept of "noise" is stillquite valid and the principles of this technology still quite valid.These latter forms often use dithering (similar to pointillist paintingsand color newspaper print) to achieve near lifelike imagery.

This section concerns this class of 2 dimensional graphics whichtraditionally do not contain "noise." This section takes a brief look athow the principles of this technology can still be applied in somefashion to such creative material.

The easiest way to apply the principles of this technology to these"noiseless" graphics is to convert them into a form which is amenable tothe application of the principles of this technology. Many terms havebeen used in the industry for this conversion, including "ripping" avector graphic (raster image processing) such that a vector graphic fileis converted to a greyscale pixel-based raster image. Programs such asPhotoshop by Adobe have such internal tools to convert vector graphicfiles into RGB or greyscale digital images. Once these files are in sucha form, the principles of this technology can be applied in astraightforward manner. Likewise, very-low-indexed bitmaps can beconverted to an RGB digital image or an equivalent. In the RGB domain,the signatures can be applied to the three color channels in appropriateratios, or the RGB image can be simply converted into a greyscale/chromaformat such as "Lab" in Adobe's Photoshop software, and the signaturescan be applied to the "Lightness channel" therein. Since most of thedistribution media, such as videotapes, CD-ROMs, MPEG video, digitalimages, and print are all in forms which are amenable to the applicationof the principles of this technology, this conversion from vectorgraphic form and very-low-order graphic form is often done in any event.

Another way to apply the principles of this technology to vectorgraphics and very-low-order bitmapped graphics is to recognize that,indeed, there are certain properties to these inherent graphic formatswhich--to the eye--appear as noise. The primary example is the bordersand contours between where a given line or figure is drawn or not drawn,or exactly where a bit-map changes from green to blue. In most cases, ahuman viewer of such graphics will be keenly aware of any attempts to"modulate signature signals" via the detailed and methodical changing ofthe precise contours of a graphic object. Nevertheless, such encoding ofthe signatures is indeed possible. The distinction between this approachand that disclosed in the bulk of this disclosure is that now thesignatures must ultimately derive from what already exists in a givengraphic, rather than being purely and separately created and added intoa signal. This disclosure points out the possibilities here nonetheless.The basic idea is to modulate a contour, a touch right or a touch left,a touch up or a touch down, in such a way as to communicate an N-bitidentification word. The locations of the changes contours would becontained in a an analogous master noise image, though now the noisewould be a record of random spatial shifts one direction or another,perpendicular to a given contour. Bit values of the N-bit identificationword would be encoded, and read, using the same polarity checking methodbetween the applied change and the change recorded in the master noiseimage.

PLASTIC CREDIT AND DEBIT CARD SYSTEMS BASED ON THE PRINCIPLES OF THETECHNOLOGY

Growth in the use of plastic credit cards, and more recently debit cardsand ATM cash cards, needs little introduction. Nor does there need to bemuch discussion here about the long history of fraud and illicit uses ofthese financial instruments. The development of the credit cardhologram, and its subsequent forgery development, nicely serves as ahistoric example of the give and take of plastic card security measuresand fraudulent countermeasures. This section will concern itself withhow the principles of this technology can be realized in an alternative,highly fraud-proof yet cost effective plastic card-based financialnetwork.

A basic list of desired features for an ubiquitous plastic economy mightbe as follows: 1) A given plastic financial card is completelyimpossible to forge; 2) An attempted forged card (a "look-alike") cannoteven function within a transaction setting; 3) Intercepted electronictransactions by a would-be thief would not in any way be useful orre-useable; 4) In the event of physical theft of an actual valid card,there are still formidable obstacles to a thief using that card; and 5)The overall economic cost of implementation of the financial cardnetwork is equal to or less than that of the current internationalcredit card networks, i.e., the fully loaded cost per transaction isequal to or less than the current norm, allowing for higher profitmargins to the implementors of the networks. Apart from item 5, whichwould require a detailed analysis of the engineering and social issuesinvolved with an all out implementation strategy, the following use ofthe principles of this technology may well achieve the above list, evenitem 5.

FIGS. 22 through 26, along with the ensuing written material,collectively outline what is referred to in FIG. 26 as "TheNegligible-Fraud Cash Card System." The reason that the fraud-preventionaspects of the system are highlighted in the title is that fraud, andthe concomitant lost revenue therefrom, is apparently a central problemin today's plastic card based economies. The differential advantages anddisadvantages of this system relative to current systems will bediscussed after an illustrative embodiment is presented.

FIG. 22 illustrates the basic unforgeable plastic card which is quiteunique to each and every user. A digital image 940 is taken of the userof the card. A computer, which is hooked into the central accountingnetwork, 980, depicted in FIG. 26, receives the digital image 940, andafter processing it (as will be described surrounding FIG. 24) producesa final rendered image which is then printed out onto the personal cashcard 950. Also depicted in FIG. 22 is a straightforward identificationmarking, in this case a bar code 952, and optional position fiducialswhich may assist in simplifying the scanning tolerances on the Reader958 depicted in FIG. 23.

The short story is that the personal cash card 950 actually contains avery large amount of information unique to that particular card. Thereare no magnetic strips involved, though the same principles cancertainly be applied to magnetic strips, such as an implanted magneticnoise signal (see earlier discussion on the "fingerprinting" of magneticstrips in credit cards; here, the fingerprinting would be prominent andproactive as opposed to passive). In any event, the unique informationwithin the image on the personal cash card 950 is stored along with thebasic account information in a central accounting network, 980, FIG. 26.The basis for unbreakable security is that during transactions, thecentral network need only query a small fraction of the totalinformation contained on the card, and never needs to query the sameprecise information on any two transactions. Hundreds if not thousandsor even tens of thousands of unique and secure "transaction tokens" arecontained within a single personal cash card. Would-be pirates who wentso far as to pick off transmissions of either encrypted or evenunencrypted transactions would find the information useless thereafter.This is in marked distinction to systems which have a single complex andcomplete "key" (generally encrypted) which needs to be accessed, in itsentirety, over and over again. The personal cash card on the other handcontains thousands of separate and secure keys which can be used once,within milliseconds of time, then forever thrown away (as it were). Thecentral network 980 keeps track of the keys and knows which have beenused and which haven't.

FIG. 23 depicts what a typical point-of-sale reading device, 958, mightlook like. Clearly, such a device would need to be manufacturable atcosts well in line with, or cheaper than, current cash register systems,ATM systems, and credit card swipers. Not depicted in FIG. 23 are theinnards of the optical scanning, image processing, and datacommunications components, which would simply follow normal engineeringdesign methods carrying out the functions that are to be describedhenceforth and are well within the capability of artisans in thesefields. The reader 958 has a numeric punch pad 962 on it, showing that anormal personal identification number system can be combined with theoverall design of this system adding one more conventional layer ofsecurity (generally after a theft of the physical card has occurred). Itshould also be pointed out that the use of the picture of the user isanother strong (and increasingly common) security feature intended tothwart after-theft and illicit use. Functional elements such as theoptical window, 960, are shown, mimicking the shape of the card,doubling as a centering mechanism for the scanning. Also shown is thedata line cable 966 presumably connected either to a proprietor'scentral merchant computer system or possibly directly to the centralnetwork 980. Such a reader may also be attached directly to a cashregister which performs the usual tallying of purchased items. Perhapsoverkill on security would be the construction of the reader, 958, as atype of Faraday cage such that no electronic signals, such as the rawscan of the card, can emanate from the unit. The reader 958 does need tocontain, preferably, digital signal processing units which will assistin swiftly calculating the dot product operations described henceforth.It also should contain local read-only memory which stores a multitudeof spatial patterns (the orthogonal patterns) which will be utilized inthe "recognition" steps outlined in FIG. 25 and its discussion. Asrelated in FIG. 23, a consumer using the plastic card merely placestheir card on the window to pay for a transaction. A user could choosefor themselves if they want to use a PIN number or not. Approval of thepurchase would presumably happen within seconds, provided that thesignal processing steps of FIG. 25 are properly implemented witheffectively parallel digital processing hardware.

FIG. 24 takes a brief look at one way to process the raw digital image,940, of a user into an image with more useful information content anduniqueness. It should be clearly pointed out that the raw digital imageitself could in fact be used in the following methods, but that placingin additional orthogonal patterns into the image can significantlyincrease the overall system. (Orthogonal means that, if a given patternis multiplied by another orthogonal pattern, the resulting number iszero, where "multiplication of patterns" is meant in the sense of vectordot products; these are all familiar terms and concepts in the art ofdigital image processing). FIG. 24 shows that the computer 942 can,after interrogating the raw image 970, generate a master snowy image 972which can be added to the raw image 970 to produce a yet-more uniqueimage which is the image that is printed onto the actual personal cashcard, 950. The overall effect on the image is to "texturize" the image.In the case of a cash card, invisibility of the master snowy pattern isnot as much of a requirement as with commercial imagery, and one of theonly criteria for keeping the master snowy image somewhat lighter is tonot obscure the image of the user. The central network, 980, stores thefinal processed image in the record of the account of the user, and itis this unique and securely kept image which is the carrier of thehighly secure "throw-away transaction keys." This image will thereforebe "made available" to all duly connected point-of-sale locations in theoverall network. As will be seen, none of the point-of-sale locationsever has knowledge of this image, they merely answer queries from thecentral network.

FIG. 25 steps through a typical transaction sequence. The figure is laidout via indentations, where the first column are steps performed by thepoint-of-sale reading device 958, the second column has informationtransmission steps communicated over the data line 966, and the thirdcolumn has steps taken by the central network 980 which has the securedinformation about the user's account and the user's unique personal cashcard 950. Though there is some parallelism possible in theimplementation of the steps, as is normally practiced in the engineeringimplementation of such systems, the steps are nevertheless laid outaccording to a general linear sequence of events.

Step one of FIG. 25 is the standard "scanning" of a personal cash card950 within the optical window 960. This can be performed using linearoptical sensors which scan the window, or via a two dimensional opticaldetector array such as a CCD. The resulting scan is digitized into agrey scale image and stored in an image frame memory buffer such as a"framegrabber," as is now common in the designs of optical imagingsystems. Once the card is scanned, a first image processing step wouldprobably be locating the four fiducial center points, 954, and usingthese four points to guide all further image processing operations (i.e.the four fiducials "register" the corresponding patterns and barcodes onthe personal cash card). Next, the barcode ID number would be extractedusing common barcode reading image processing methods. Generally, theuser's account number would be determined in this step.

Step two of FIG. 25 is the optional typing in of the PIN number.Presumably most users would opt to have this feature, except those userswho have a hard time remembering such things and who are convinced thatno one will ever steal their cash card.

Step three of FIG. 25 entails connecting through a data line to thecentral accounting network and doing the usual communicationshandshaking as is common in modem-based communications systems. A moresophisticated embodiment of this system would obviate the need forstandard phone lines, such as the use of optical fiber data links, butfor now we can assume it is a garden variety belltone phone line andthat the reader 958 hasn't forgotten the phone number of the centralnetwork.

After basic communications are established, step four shows that thepoint-of-sale location transmits the ID number found in step 1, alongwith probably an encrypted version of the PIN number (for addedsecurity, such as using the ever more ubiquitous RSA encryptionmethods), and appends the basic information on the merchant who operatesthe point-of-sale reader 958, and the amount of the requestedtransaction in monetary units.

Step five has the central network reading the ID number, routing theinformation accordingly to the actual memory location of that user'saccount, thereafter verifying the PIN number and checking that theaccount balance is sufficient to cover the transaction. Along the way,the central network also accesses the merchant's account, checks that itis valid, and readies it for an anticipated credit.

Step six begins with the assumption that step five passed all counts. Ifstep five didn't, the exit step of sending a NOT OK back to the merchantis not depicted. So, if everything checks out, the central networkgenerates twenty four sets of sixteen numbers, where all numbers aremutually exclusive, and in general, there will be a large but quitedefinitely finite range of numbers to choose from. FIG. 25 posits therange being 64K or 65536 numbers. It can be any practical number,actually. Thus, set one of the twenty four sets might have the numbers23199, 54142, 11007, 2854, 61932, 32879, 38128, 48107, 65192, 522,55723, 27833, 19284, 39970, 19307, and 41090, for example. The next setwould be similarly random, but the numbers of set one would be offlimits now, and so on through the twenty four sets. Thus, the centralnetwork would send (16×24×2 bytes) of numbers or 768 bytes. The actualamount of numbers can be determined by engineering optimization ofsecurity versus transmission speed issues. These random numbers areactually indexes to a set of 64K universally a priori defined orthogonalpatterns which are well known to both the central network and arepermanently stored in memory in all of the point-of-sale readers. Aswill be seen, a would-be thief's knowledge of these patterns is of nouse.

Step seven then transmits the basic "OK to proceed" message to thereader, 958, and also sends the 24 sets of 16 random index numbers.

Step eight has the reader receiving and storing all these numbers. Thenthe reader, using its local microprocessor and custom designed highspeed digital signal processing circuitry, steps through all twenty foursets of numbers with the intention of deriving 24 distinct floatingpoint numbers which it will send back to the central network as a "onetime key" against which the central network will check the veracity ofthe card's image. The reader does this by first adding together thesixteen patterns indexed by the sixteen random numbers of a given set,and then performing a common dot product operation between the resultingcomposite pattern and the scanned image of the card. The dot productgenerates a single number (which for simplicity we can call a floatingpoint number). The reader steps through all twenty four sets in likefashion, generating a unique string of twenty four floating pointnumbers.

Step nine then has the reader transmitting these results back to thecentral network.

Step ten then has the central network performing a check on thesereturned twenty four numbers, presumably doing its own exact samecalculations on the stored image of the card that the central networkhas in its own memory. The numbers sent by the reader can be"normalized," meaning that the highest absolute value of the collectivetwenty four dot products can divided by itself (its unsigned value), sothat brightness scale issues are removed. The resulting match betweenthe returned values and the central network's calculated values willeither be well within given tolerances if the card is valid, and way offif the card is a phony or if the card is a crude reproduction.

Step eleven then has the central network sending word whether or not thetransaction was OK, and letting the customer know that they can go homewith their purchased goods.

Step twelve then explicitly shows how the merchant's account is creditedwith the transaction amount.

As already stated, the primary advantage of this plastic card is tosignificantly reduce fraud, which apparently is a large cost to currentsystems. This system reduces the possibility of fraud only to thosecases where the physical card is either stolen or very carefully copied.In both of these cases, there still remains the PIN security and theuser picture security (a known higher security than low wage clerksanalyzing signatures). Attempts to copy the card must be performedthrough "temporary theft" of the card, and require photo-quality copyingdevices, not simple magnetic card swipers. The system is founded upon amodem 24 hour highly linked data network. Illicit monitoring oftransactions does the monitoring party no use whether the transmissionsare encrypted or not.

It will be appreciated that the foregoing approach to increasing thesecurity of transactions involving credit and debit card systems isreadily extended to any photograph-based identification system.Moreover, the principles of the present technology may be applied todetect alteration of photo ID documents, and to generally enhance theconfidence and security of such systems. In this regard, reference ismade to FIG. 28, which depicts a photo-ID card or document 1000 whichmay be, for example, a passport, visa, permanent resident card ("greencard"), driver's license, credit card, government employeeidentification, or a private industry identification badge. Forconvenience, such photograph-based identification documents will becollectively referred to as photo ID documents.

The photo ID document includes a photograph 1010 that is attached to thedocument 1000. Printed, human-readable information 1012 is incorporatedin the document 1000, adjacent to the photograph 1010. Machine readableinformation, such as that known as "bar code" may also be includedadjacent to the photograph.

Generally, the photo ID document is constructed so that tampering withthe document (for example, swapping the original photograph withanother) should cause noticeable damage to the card. Nevertheless,skilled forgerers are able to either alter existing documents ormanufacture fraudulent photo ID documents in a manner that is extremelydifficult to detect.

As noted above, the present technology enhances the security associatedwith the use of photo ID documents by supplementing the photographicimage with encoded information (which information may or may not bevisually perceptible), thereby facilitating the correlation of thephotographic image with other information concerning the person, such asthe printed information 1012 appearing on the document 1000.

In one embodiment, the photograph 1010 may be produced from a rawdigital image to which is added a master snowy image as described abovein connection with FIGS. 22-24. The above-described central network andpoint-of-sale reading device (which device, in the present embodiment,may be considered as a point-of-entry or point-of-security photo IDreading device), would essentially carry out the same processing asdescribed with that embodiment, including the central network generationof unique numbers to serve as indices to a set of defined orthogonalpatterns, the associated dot product operation carried out by thereader, and the comparison with a similar operation carried out by thecentral network. If the numbers generated from the dot product operationcarried out by the reader and the central network match, in thisembodiment, the network sends the OK to the reader, indicating alegitimate or unaltered photo ID document.

In another embodiment, the photograph component 1010 of theidentification document 1000 may be digitized and processed so that thephotographic image that is incorporated into the photo ID document 1000corresponds to the "distributable signal" as defined above. In thisinstance, therefore, the photograph includes a composite, embedded codesignal, imperceptible to a viewer, but carrying an N-bit identificationcode. It will be appreciated that the identification code can beextracted from the photo using any of the decoding techniques describedabove, and employing either universal or custom codes, depending uponthe level of security sought.

It will be appreciated that the information encoded into the photographmay correlate to, or be redundant with, the readable information 1012appearing on the document. Accordingly, such a document could beauthenticated by placing the photo ID document on a scanning system,such as would be available at a passport or visa control point. Thelocal computer, which may be provided with the universal code forextracting the identification information, displays the extractedinformation on the local computer screen so that the operator is able toconfirm the correlation between the encoded information and the readableinformation 1012 carried on the document.

It will be appreciated that the information encoded with the photographneed not necessarily correlate with other information on anidentification document. For example, the scanning system may need onlyto confirm the existence of the identification code so that the user maybe provided with a "go" or "no go" indication of whether the photographhas been tampered with. It will also be appreciated that the localcomputer, using an encrypted digital communications line, could send apacket of information to a central verification facility, whichthereafter returns an encrypted "go" or "no go" indication.

In another embodiment, it is contemplated that the identification codeembedded in the photograph may be a robust digital image of biometricdata, such as a fingerprint of the card bearer, which image, afterscanning and display, may be employed for comparison with the actualfingerprint of the bearer in very high security access points whereon-the-spot fingerprint recognition systems (or retinal scans, etc.) areemployed.

It will be appreciated that the information embedded in the photographneed not be visually hidden or steganographically embedded. For example,the photograph incorporated into the identification card may be acomposite of an image of the individual and one-, or two-dimensional barcodes. The bar code information would be subject to conventional opticalscanning techniques (including internal cross checks) so that theinformation derived from the code may be compared, for example, to theinformation printed on the identification document.

It is also contemplated that the photographs of ID documents currentlyin use may be processed so that information correlated to the individualwhose image appears in the photograph may be embedded. In this regard,the reader's attention is directed to the foregoing portion of thisdescription entitled "Use in Printing, Paper, Documents, Plastic-CoatedIdentification Cards, and Other Material Where Global Embedded Codes CanBe Imprinted," wherein there is described numerous approaches tomodulation of physical media that may be treated as "signals" amenableto application of the present technology principles.

NETWORK LINKING METHOD USING INFORMATION EMBEDDED IN DATA OBJECTS THATHAVE INHERENT NOISE

The diagram of FIG. 27 illustrates the aspect of the technology thatprovides a network linking method using information embedded in dataobjects that have inherent noise. In one sense, this aspect is a networknavigation system and, more broadly, a massively distributed indexingsystem that embeds addresses and indices directly within data objectsthemselves. As noted, this aspect is particularly well-adapted forestablishing hot links with pages presented on the World Wide Web (WWW).A given data object effectively contains both a graphical representationand embedded URL address.

As in previous embodiments, this embedding is carried out so that theadded address information does not affect the core value of the objectso far as the creator and audience are concerned. As a consequence ofsuch embedding, only one class of data objects is present rather thanthe two classes (data object and discrete header file) that areattendant with traditional WWW links. The advantages of reducing ahot-linked data object to a single class were mentioned above, and areelaborated upon below. In one embodiment of the technology, the WorldWide Web is used as a pre-existing hot link based network. The commonapparatus of this system is networked computers and computer monitorsdisplaying the results of interactions when connected to the web. Thisembodiment of the technology contemplates steganographically embeddingURL or other address-type information directly into images, videos,audio, and other forms of data objects that are presented to a web sitevisitor, and which have "gray scale" or "continuous tones" or"gradations" and, consequently, inherent noise. As noted above, thereare a variety of ways to realize basic steganographic implementations,all of which could be employed in accordance with the presenttechnology.

With particular reference to FIG. 27, images, quasi-continuous tonegraphics, multimedia video and audio data are currently the basicbuilding blocks of many sites 1002, 1004 on the World Wide Web. Suchdata will be hereafter collectively referred to as creative data filesor data objects. For illustrative purposes, a continuous-tone graphicdata object 1006 (diamond ring with background) is depicted in FIG. 27.

Web site tools--both those that develop web sites 1008 and those thatallow browsing them 1010--routinely deal with the various file formatsin which these data objects are packaged. It is already common todistribute and disseminate these data objects 1006 as widely aspossible, often with the hope on a creator's part to sell the productsrepresented by the objects or to advertise creative services (e.g., anexemplary photograph, with an 800 phone number displayed within it,promoting a photographer's skills and service). Using the methods ofthis technology, individuals and organizations who create anddisseminate such data objects can embed an address link that leads rightback to their own node on a network, their own site on the WWW.

A user at one site 1004 needs merely to point and click at the displayedobject 1006. The software 1010 identifies the object as a hot linkobject. The software reads the URL address that is embedded within theobject and routes the user to the linked web site 1002, just as if theuser had used a conventional web link. That linked site 1002 is the homepage or network node of the creator of the object 1006, which creatormay be a manufacturer. The user at the first site 1004 is then presentedwith, for example, an order form for purchasing the product representedby the object 1006.

It will be appreciated that the creators of objects 1006 having embeddedURL addresses or indices (which objects may be referred to as "hotobjects") and the manufacturers hoping to advertise their goods andservices can now spread their creative content like dandelion seeds inthe wind across the WWW, knowing that embedded within those seeds arelinks back to their own home page.

It is contemplated that the object 1006 may include a visible icon 1012(such as the exemplary "HO" abbreviation shown in FIG. 27) incorporatedas part of the graphic. The icon or other subtle indicia would apprisethe user that the object is a hot object, carrying the embedded URLaddress or other information that is accessible via the software 1010.

Any human-perceptible indicium (e.g., a short musical tone) can servethe purpose of apprising the user of the hot object. It is contemplated,however, that no such indicium is required. A user's trial-and-errorapproach to clicking on a data object having no embedded address willmerely cause the software to look for, but not find, the URL address.

The automation process inherent in the use of this aspect of thetechnology is very advantageous. Web software and web site developmenttools simply need to recognize this new class of embedded hot links (hotobjects), operating on them in real time. Conventional hot links can bemodified and supplemented simply by "uploading" a hot object into a website repository, never requiring a web site programmer to do a thingother than basic monitoring of traffic.

A method of implementing the above described functions of the presenttechnology generally involves the steps of (1) creating a set ofstandards by which URL addresses are steganographically embedded withinimages, video, audio, and other forms of data objects; and (2) designingweb site development tools and web software such that they recognizethis new type of data object (the hot object), the tools being designedsuch that when the objects are presented to a user and that user pointsand clicks on such an object, the user's software knows how to read ordecode the steganographic information and route the user to the decodedURL address.

The foregoing portions of this description detailed a steganographicimplementation (see, generally, FIG. 2 and the text associatedtherewith) that is readily adapted to implement the present technology.In this regard, the otherwise conventional site development tool 1008 isenhanced to include, for example, the capability to encode a bit-mappedimage file with an identification code (URL address, for example)according to the present technology. In the present embodiment, it iscontemplated that the commercial or transaction based hot objects may besteganographically embedded with URL addresses (or other information)using any of the universal codes described above.

The foregoing portions of this description also detailed a technique forreading or decoding steganographically embedded information (see,generally, FIG. 3 and the text associated therewith) that is readilyadapted to implement the present technology. In this regard, theotherwise conventional user software 1010 is enhanced to include, forexample, the capability to analyze encoded bit-mapped files and extractthe identification code (URL address, for example).

While an illustrative implementation for steganographically embeddinginformation on a data object has been described, one of ordinary skillwill appreciate that any one of the multitude of availablesteganographic techniques may be employed to carry out the function ofthe present embodiment.

It will be appreciated that the present embodiment provides an immediateand common sense mechanism whereby some of the fundamental buildingblocks of the WWW, namely images and sound, can also become hot links toother web sites. Also, the programming of such hot objects can becomefully automated merely through the distribution and availability ofimages and audio. No real web site programming is required. The presentembodiment provides for the commercial use of the WWW in such a way thatnon-programmers can easily spread their message merely by creating anddistributing creative content (herein, hot objects). As noted, one canalso transition web based hot links themselves from a more arcane textbased interface to a more natural image based interface.

Encapsulated Hot Link File Format

As noted above, once steganographic methods of hot link navigation takehold, then, as new file formats and transmission protocols develop, moretraditional methods of "header-based" information attachment can enhancethe basic approach built by a steganographic-based system. One way tobegin extending the steganographic based hot link method back into themore traditional header-based method is to define a new class of fileformat which could effectively become the standard class used in networknavigation systems. It will be seen that objects beyond images, audioand the like can now become "hot objects", including text files, indexedgraphic files, computer programs, and the like.

The encapsulated hot link (EHL) file format simply is a small shellplaced around a large range of pre-existing file formats. The EHL headerinformation takes only the first N bytes of a file, followed by a fulland exact file in any kind of industry standard format. The EHLsuper-header merely attaches the correct file type, and the URL addressor other index information associating that object to other nodes on anetwork or other databases on a network.

It is possible that the EHL format could be the method by which thesteganographic methods are slowly replaced (but probably nevercompletely). The slowness pays homage to the idea that file formatstandards often take much longer to create, implement, and get everybodyto actually use (if at all). Again, the idea is that an EHL-like formatand system built around it would bootstrap onto a system setup based onsteganographic methods.

Self Extracting Web Objects

Generally speaking, three classes of data can be steganographicallyembedded in an object: a number (e.g. a serial or identification number,encoded in binary), an alphanumeric message (e.g. a human readable nameor telephone number, encoded in ASCII or a reduced bit code), orcomputer instructions (e.g. JAVA or HTML instructions). The embeddedURLs and the like detailed above begin to explore this third class, buta more detailed exposition of the possibilities may be helpful.

Consider a typical web page, shown in FIG. 27A. It may be viewed asincluding three basic components: images (#1-#6), text, and layout.

Applicant's technology can be used to consolidate this information intoa self-extracting object, and regenerate the web page from this object.

In accordance with this example, FIG. 27B shows the images of the FIG.27A web page fitted together into a single RGB mosaiced image. A usercan perform this operation manually using existing image processingprograms, such as Adobe's Photoshop software, or the operation can beautomated by a suitable software program.

Between certain of the image tiles in the FIG. 27B mosaic are emptyareas (shown by cross-hatching).

This mosaiced image is then steganographically encoded to embed thelayout instructions (e.g. HTML) and the web page text therein. In theempty areas the encoding gain can be maximized since there is no imagedata to corrupt. The encoded, mosaiced image is then JPEG compressed toform a self extracting web page object.

(JPEG compression is used in this example as a lingua franca of imagerepresentations. Another such candidate is the GIF file format. Suchformats are supported by a variety of software tools and languages,making them well suited as "common carriers" of embedded information.Other image representations can of course be used.)

These objects can be exchanged as any other JPEG images. When the JPEGfile is opened, a suitably programmed computer can detect the presenceof the embedded information and extract the layout data and text. Amongother information, the layout data specifies where the images formingthe mosaic are to be located in the final web page. The computer canfollow the embedded HTML instructions to recreate the original web page,complete with graphics, text, and links to other URLs.

If the self extracting web page object is viewed by a conventional JPEGviewer, it does not self-extract. However, the user will see the logosand artwork associated with the web page (with noise-like "grouting"between certain of the images). Artisans will recognize that this is instark contrast to viewing of other compressed data objects (e.g. PKZIPfiles and self extracting text archives) which typically appear totallyunintelligible unless fully extracted.

(The foregoing advantages can largely be achieved by placing the webpage text and layout instructions in a header file associated with aJPEG-compressed mosaiced image file. However, industry standardizationof the header formats needed to make such systems practical appearsdifficult, if not impossible.)

Palettes of Steganographically Encoded Images

Once web images with embedded URL information become widespread, suchweb images can be collected into "palettes" and presented to users ashigh level navigation tools. Navigation is effected by clicking on suchimages (e.g. logos for different web pages) rather than clicking ontextual web page names. A suitably programmed computer can decode theembedded URL information from the selected image, and establish therequested connection.

In one embodiment, self-extraction of the above-described web pageobjects automatically generates thumbnail images corresponding to theextracted pages (e.g. representative logos), which are then stored in asubdirectory in the computer's file system dedicated to collecting suchthumbnails. In each such thumbnail is embedded a URL, such as the URL ofthe extracted page or the URL of the site from which the self-extractingobject was obtained. This subdirectory can be accessed to display apalette of navigational thumbnails for selection by the user.

Specific Example of a Computer System Linked by Using Information inData Objects

The present invention allows a digital watermark to be embedded directlyinto photographs, video, computer images, audio, and other forms ofcreative property. The range of applications is amazingly wide, andincludes things like video and movie content watermarking for proof ofownership and tracking, watermarking music and audio content, eventexturing physical materials such as auto parts. As discussed above,this watermark is imperceptible to the eye, and imperceptible to theear, but a computer analysis can read the watermark and discover amessage it carries. The watermark is repeated throughout the property.It is robust, and typically survives multiple generations of copying,modification, printing, scanning, and compression. A watermark may carrya copyright notice, a unique serial number, a Transaction ID, as well asother application specific data.

Conceptually, the example below is made with respect to a watermarkembedded by "PictureMarc" which illustrates the idea by carrying aunique creator id, and a set of image attributes. This creator idcorresponds to complete contact information available through an on-lineservice, MarcCentre. Technically, the watermark is 128 bits long and hasa data payload of 76 bits, although the invention is not restricted toany particular watermark size. In this example, it is short so that itcan be repeated many times through an image, making it possible to findthe message even from a portion of the original image. Other approachescan include data such as an image serial number or a Transaction ID inthe watermark message. It is also possible to add a person's name orother such data (to a computer, it is all data), but one application isfocused on embedding a more structured message. First, to accommodate atext string, there would be a tendency to push for longer messages. Longmessages result in not being able to fit very many copies of the messagein an image, and thus the watermark becomes less robust. Also, justputting a name in an image is much like the credit line in a magazine:A. Jones tells who the person is, but not how to contact the person.With a watermark system available on line, a user can get complete andup to date contact details from each Creator ID through the on-lineservice. Accordingly, it is preferable to associate persistent digitalinformation with an image. The core software has been designed to enableworking with vendors or large customers who may want to develop specificwatermark message types for special applications such as embedding thefilm speed and exposure in the image, or serializing images in a largecollection for internal tracking and management.

One approach to implementing this embodiment involves "PictureMarc",which includes a writer portion to embed watermarks and a reader portionto find them and read their contents. This bundle is integrated intoAdobe Photoshop® 4.0 (Adobe Photoshop is a trademark of Adobe Systems,Inc.) as a plugin extension, and from the end-user's perspective isfree. A free reader will also be available through a web site.PictureMarc for Photoshop is supported on Apple Macintosh and MicrosoftWindows platforms. PictureMarc supports embedding a Creator ID and imageattributes in an image. PictureMarc also has the ability to carry aunique Image ID or even a Transaction ID in the watermark. These formatswill support tracking images both to a collection, and to the person andterms that were in place when the image sold. The watermark reader willaccept and read all watermark formats.

As an example, the first step is to read an image from a CD-ROM,download a file to a local computer over the Internet or convert ahardcopy image, such as a photograph, into digital by scanning the imagewith any of the common image scanners. Then start an image manipulationprogram that supports watermarking, and load the image file from a fileselection menu. Select the menu item to add a watermark, and save thewatermarked image into a file.

To recover a watermarked image from a digital image on, say, a PC, justas in the case of embedding a watermark, convert the image to a suitablecomputer file format, scanning it in if needed. Then start either animage manipulation tool supporting watermarking, or start a stand-alonereader. Now open the image. In the case of a preferred embodiment imagemanipulation tool, the tool will automatically check for a watermarkwhen the digital image file is opened, copied to the system clipboard orthe image is scanned into the computer. If present, a copyright symbolis added to the title or status bar, or some other signal is provided tothe user. By selecting a read watermark menu option, a user can discoverthe contents of the watermark. From the results dialog, a user can clickon the Web Lookup button to retrieve complete contact information fromMarcCentre, a network WWW on-line service. The application can becarried out with at least two kinds of watermarks. The first is a publicwatermark, which can be read by any suitably configured reader. This isthe type of watermark supported by PictureMarc--Its purpose iscommunication. The second is a private watermark. Private watermarks areassociated with a secret key used at the time the watermark is embeddedin an image. Only the person with the secret key can find and read aprivate watermark. Private watermarks are used in proof of ownershipapplications. Both a public and a private watermark can coexist in animage.

If a user attempts to read a watermark and none is there, the readerportion will simply report that a watermark was not found in the image.If a user attempts to watermark an image already watermarked, the userwill be informed there is already a watermark in the image, and will beprevented from adding another watermark. In creating a composite image,the user is first told about the presence of a watermark in eachwatermarked original (assuming the use of a tool supporting watermarks).This addresses the first order problem of communicating copyright. Thewatermark will not prevent creating a composite work, in that awatermarked image, or a portion thereof, can be used as an element of acomposite image. However, if the composite image contains multiplewatermarked elements, the reader portion will tend to read the watermarkfrom the most dominant piece. However, if the user suspects a componentto be watermarked, or is simply interested in the source of an imageelement, the user can check for the watermark in that element byhighlighting the area in question, and invoking the read watermarkfunction. This provides a tool to inspect work to discover sources ofindividual elements. Copyright hierarchies in composited works andpartnering with companies addressing rights management can all behandled in such a network application of a watermark.

Preferably, applications which include watermarking, such as Photoshop4.0, support automatic detection ("autodetect"). This means thatwhenever an image is opened or scanned into the application, a quickcheck is done to determine if a watermark is present. If it is present,a visual indication, such as a copyright symbol, is added to the titleor status bar.

The watermark placed by PictureMarc is a 128 bits long, with a datapayload of 76 bits. The remaining bits are dedicated to header andcontrol information, and error detection and correction. However, thebandwidth can be increased and consequently the data payload can also beincreased. The detect process looks for the presence of a watermark,which completes in a couple of seconds, usually under 3 secondsregardless of image size, and the typical time to perform a full readwatermark operation is under 15 seconds.

PictureMarc supports all the file formats of the host application, sinceit works with pixels in each of the major color schemes (CMYK, RGB, LAB,Grayscale). In the case of PictureMarc for Photoshop, all of thePhotoshop file formats are supported.

Note that the watermark itself carries version and message typeinformation, much like a communications message. PictureMarc has beendesigned to support upward compatibility. Any suitably configured readerwill be able to read previous versions of the watermark. If a readerfinds a newer version watermark which it does not support, the user willbe notified and told to download the most recent reader.

In the present application of PictureMarc, an image generally needs tobe at least 256×256 pixels to carry a watermark. Often a watermark canbe found in patches as small as 100 pixels square. Arbitrarily largeimages can be watermarked, constrained only by available memory and diskspace. The watermark does not add data to the image file, since it onlymakes very small changes to the luminance of pixels. This can change thesize of a compressed image by a few percent, but the size ofuncompressed images, such as bitmaps (.BMPs), are unchanged. While awatermark survives compression, to watermark an already compressedimage, it is preferable to either work from the original, or uncompress,watermark, and recompress the image. Future versions will likely supportadding watermarks directly to the JPEG compressed file.

PictureMarc supports the automation features provided by Adobe Photoshop4.0. This means that repetitive watermarking operations can be automatednow. In other applications, support can be provided for unattended batchprocessing of images, aimed to support the needs of image distributors,especially those companies looking to watermark images as they aredistributed with unique Transition IDs.

As to the use of a network on line service, an image creator ordistributor subscribes to the MarcCentre, on-line locator service.Subscribing includes providing a set of contact information to be madeavailable when one of a user's watermarked images is found. Contactdetails include name, address, phone number, specialty, intermediary(e.g., organization, stock agency, representative, etc.) representingthe creator's work and so on. When subscribing, the user is given aunique Creator ID. The user provides this Creator ID to a copy ofPictureMarc, one time when first using the software-based system. ThisCreator ID links all of the user's images to facilitate contact details.Information can be queried via the Internet, or via a fax-back service.Querying is preferably free.

A subscription to MarcCentre is priced to include unlimited access tocontact information by anyone finding watermarked images. A Creator IDin the image leverages the power of a network accessible database, andlets the image creator communicate much more information than could fitin the image. In essence, we are creating a copyright communicationsystem. Watermark detection in programs such as Photoshop is automatic.The Creator ID in the image, along with the image attributes, uniquelyidentify the image creator or distributor. The contact informationcorresponding to the Creator ID is always up to date, no matter how longago a watermarked image was distributed. To make this copyrightcommunication system work, we need unique ids which correspond to theappropriate image creator contact information.

If there is no network connection for PictureMarc, an equivalentapproach can be used: contact information can be communicated via afax-back service. This can be carried out by punching in the Creator IDon a touch-tone keypad with telephony, and the resulting contact detailsfor that image creator will be sent by fax.

Contact details will be stored on a robust server being hosted by anInternet provider. The Web site is responsible for maintaining thelocator service and ensuring that information is available. Individualimage creators are responsible for maintaining their own contactdetails, keeping them current as information changes. This ensures thatall of the images distributed point to up-to-date information about thecreator and the creator's work.

Data in the Web site repository is stored in a way that when a userenter contact details, the user has control over which pieces ofinformation are viewable by viewers. Thus, for example, the user candesignate whether to exclude his or her address, phone number, and otherspecific information.

It is helpful for users to receive regular reports, generated by the Webpage site software, about the number of people querying a specificuser's information. These can be sent to the user via e-mail or fax, tohelp communicate the activity concerning watermarked images.

Before turning to a specific embodiment of the present invention, it isimportant to stress the general applicability of embedding a watermark,then reading it to obtain data, and then using the data to link to adatabase--preferably via a computer network. This is applicable to allmedia for which this technology is useful. This includes watermarking aphotograph or a series of watermarks in a series of images (e.g.,television, video), in sound or other analog signals (e.g., recordings,cellular telephone or other broadcasts), and other applicationsindicated herein. In any of these applications, while the watermark cancontain self-identifying data, a centralized repository of watermarkdata facilitates broad, efficient usage.

Thus, the following specific description of a preferred embodiment of acentral repository, accessible by a network, is intended to beillustrative of the same kind of an approach for other applications andmedia suitable for watermarking. And it is to be understood that whilethe following discussion is made in the context of image processing, thesame general approach can be used for handling watermarks in acoustic orother applications. Also, while the Adobe Photoshop application is usedto illustrate the generally applicable concepts, it should beappreciated that the present invention can be used in connection withother such products from other vendors, as well as in stand alone form.

FIG. 43 illustrates an application of the invention using such anapplication as Adobe Photoshop 4.0, equipped with a plug in version ofthe digital watermarking technology discussed herein and illustrated as"PictureMarc," running on a digital electrical computer. The computerrunning the Adobe application is adapted for communication over anetwork (such as the WWW) with another digital electrical computer,running the MarcCentre Web Page computer program.

At step 1 of FIG. 43 a creator of a digitized photographic image, the"user" of the Adobe Photoshop, commences by obtaining a Creator ID. Suchdata is created and stored in a central repository designated in FIG. 43as MarcCentre Locator Service, which is connectable to PictureMarc viaInternet or fax. At step 2 of FIG. 43, the user creates and embeds awatermark in the digital image. At step 3 of FIG. 43, that image can bestored and/or printed, possibly subsequent to distribution over acomputer system such as the Internet or WWW. When the image bearing thewatermark is used in digital form, at step 4 of FIG. 43, that image isexamined for a watermark by a computer running the PictureMarc computerprogram. Preferably, the examination is conducted automatically (ratherthan selectively) upon opening an image, e.g., upon locating the imageon a computer screen clipboard. If a watermark is detected, at step 5 ofFIG. 43, PictureMarc communicates with the MarcCentre Locator Service tolook up creator information and present a WWW page to the user.

The means by which a user obtains a Creator ID in step 1 of FIG. 43 iselaborated in FIGS. 44, 45, and 46, which represent screen images ofMarcCentre, a Web Page locatable on the WWW. Introductory information isset forth in FIG. 44. Note the mention of a single mouse click. Thisfeature refers to a hot button, such as a copyright symbol in a titlebar of a screen, which permits someone using the Web Page to obtaininformation about the image that was pre-specified by the creator. (Ahot button (pointer to information stored in a MarcCentre database,which can in turn have a pointer to another database, such as thataccessed by means of the network or WWW.)

FIGS. 45 and 46 show sequential screens of a "form" to be completed bycomputer entries. This information is stored in a MarcCentre database.Note too that the information entered to complete the form include afee, and the fee account for the user is also stored in a MarcCentredatabase. After the form has been completed and stored and the fee hasbeen secured, a Creator ID is issued by the MarcCentre service.

The means by which a user with a Creator ID embeds a registeredwatermark in step 2 of FIG. 43 is elaborated in FIGS. 47, 48, and 49.The Photoshop software uses a filter to call up the "Digimarc"PictureMarc software and select options to embed a watermark. Boldedbars on the screen of FIG. 47 illustrate a selection being made for adigital image in the background. Other information on the screen istypical for a windows application, the Adobe Photoshop application, andor generally known information about digital images, e.g., 100% showsthe scale of the image, "RGB" indicates the image format, etc.

FIG. 48 illustrates a "Dialog Box" used in associating information inconnection with the embedding of the watermark. In a portion of thescreen, the Copyright Information is specified, including the CreatorID, the Type of Use (either Restricted or Royalty Free), Adult Content,and a Personalize option. A demonstration ID for use by those who do nothave a registered Creator ID is "PictureMarc Demo." The Adult Contentfeature permits embedding in the watermark data, preferablycontent-indicative data. Here the data is used for identifying that thephotograph contains adult content, and thus a subsequent use of thephotograph can be restricted. However, an alternative is to includeother data or other content-identifying data, such as cataloginginformation, in the watermark itself. Cataloging information permitssubject matter searching in a collection of photographs. Another featureshown in FIG. 48 is a slidable scale for adjusting the intensity of thewatermark. The more visible the watermark, the more durable thewatermark is. Watermark durability (visibility) is also indicated by anumber shown on the screen. Once the screen has been completed, if it is"OK", the user can click on this button and thereby embed the watermark.Otherwise, the user can select to cancel and thereby abort the processthat would have led to the watermarking.

Selecting the Personalize option of FIG. 48 calls the screen illustratedin FIG. 49, which is used to obtain a personalized, registered CreatorID. After the Creator ID is entered, selection of the Register optionlaunches a WWW browser directed by the URL address shown entered on thescreen to the MarcCentre registration page.

In a preferred embodiment of step 4 of FIG. 43, each time an image isopened, scanned in, or copied to the clipboard by any application, theimage is automatically tested for a watermark, as illustrated in FIG.50. This "autodetect" approach generates a signal indicative of theresult of the test, for example, one or more copyright symbols shown inthe title page of the screen in FIG. 50. Automatic checking for awatermark takes less computer time than the alternative of selectivelyreading the watermark, which is illustrated in FIGS. 51 and 52. However,the selective approach is less comprehensive in monitoring the use ofwatermarked images, which is disadvantageous if the application isconfigured to automatically report the detection back to the MarcCentre.In FIG. 50, the copyright symbol in the title area of the photograph isthe previously mentioned hot button. The copyright symbol in the lowerleft of the screen can alternatively or also be a hot button.

FIGS. 51 and 52 elaborate the alternative approach to step 4 of FIG. 43in which an image is opened and examined for a watermark. Preferably,each time an image is opened, there is an automatic check for awatermark. In any case, FIG. 51 is similar to the screen of FIG. 47,except that a selection is shown to read for a watermark.

FIG. 52 shows a screen that is be produced in response to the reading awatermark. This screen provides the Creator ID of the owner and/ordistributor of this image, as well as whether use of this image isrestricted or royalty free. Note the Web Lookup button, which can beselected to launch a WWW browser directed by the URL address shownentered on the screen to the MarcCentre Web Page, and obtains the datain the corresponding MarcCentre database corresponding to the CreatorID.

FIG. 53 illustrates a screen produced from selecting the Web Lookupfeature of FIG. 53. This screen provides the contact information for theimage creator, including phone number, E-mail address and Web links.Note the selectable buttons at the bottom of the screen illustrated inFIG. 53, including buttons that take the user to promotional offers,allow the user to download additional software, subscribe to theMarcCentre service, update contact information, search for a creator orprovide feedback on the MarcCentre service. Selecting the Creator Searchoption leads to the screen shown in FIG. 54 This self-explanatory screenenables a user to obtain contact information about a particular creatorby entering the Creator ID.

In a variation on the above-described approach, extended information isembedded in the watermark and subsequently detected, as respectivelyillustrated in FIGS. 55 and 56. Such a feature would be inserted as anadditional filter in FIG. 47. In FIG. 55., the dialog box permitsinputting an Organization ID, an Item ID, and a Transaction ID. AnOrganization ID identifies an organization or other intermediaryrepresenting the creator and/or authorized for distributing thephotograph and licensing rights thereto, such as a photo stock house. AnItem ID identifies the photograph in a collection, such as a CD ROM. ATransaction ID identifies the specific transaction that is authorized(e.g., publication one time only in a newspaper), which permitsdetection of an authorized usage. The other feature on the screen, TheBump Size specification, pertains to the smallest unit of data, in thehorizontal and vertical directions, that the watermark algorithmsoperate on. The extended information embedded in the watermark can bedetected in a manner analogous to that described with respect to FIG.48, except that the additional information is shown as illustrated inFIG. 56.

An alternative to a "plug in" embodiment is a stand alone version, whichis exemplified in the next sequence of figures. As discussed above, forany application that involves a watermark, preferably there is anautodetect capability, and FIG. 57 illustrates a screen from a standalone image reader with a clip board triggered by merely putting animage on the clipboard. In the Clipboard Viewer window of FIG. 57, awatermark detected on the image can be used to signal the user by one ofseveral methods that can be used individually or in a combination. Inone method, a title bar icon or some other bar or icon alternatesbetween "normal" and "watermark detected" states periodically (forexample, at one second intervals). Another approach is to use otherstate changes, like having the title bar or a task bar alternate betweenhighlighted and normal states periodically. Still another method is tohave the detection initiate a special dialog box display, as illustratedin FIG. 58. The Read button in the special dialog box (triggered by aclick of a mouse, like other buttons) causes reading and display of thewatermark information in the image. The Close button ends the specialdialog. (So as not to interfere with image processing, it can beconvenient to show the special dialog box for a limited amount of time,and a small window therein can show the time remaining before thespecial dialog box disappears.) Buttons shown on the screen include oneresembling a file folder to open a file; the next button is for copyinga selected image from a first application to the clipboard; the nextbutton is for pasting an image from the clipboard to a secondapplication; and the last is for help menus.

FIG. 59 shows the image after pasting it from the clipboard, in thecourse of image processing. The Digimarc Reader--Image 1 window pops upon the screen to permit clicking the Web lookup button, which launchesthe user's web browser to result in a display of the creator's web pageon the MarcCentre Web site, with the rest following as above.

Note again that the foregoing approach is representative, and it can bemodified for another media in which a watermark is used. For example,instead of an image, a sound can be used.

POTENTIAL USE OF THE TECHNOLOGY IN THE PROTECTION AND CONTROL OFSOFTWARE PROGRAMS

The illicit use, copying, and reselling of software programs representsa huge loss of revenues to the software industry at large. The prior artmethods for attempting to mitigate this problem are very broad and willnot be discussed here. What will be discussed is how the principles ofthis technology might be brought to bear on this huge problem. It isentirely unclear whether the tools provided by this technology will haveany economic advantage (all things considered) over the existingcountermeasures both in place and contemplated.

The state of technology over the last decade or more has made it ageneral necessity to deliver a full and complete copy of a softwareprogram in order for that program to function on a user's computer. Ineffect, $X were invested in creating a software program where X islarge, and the entire fruits of that development must be delivered inits entirety to a user in order for that user to gain value from thesoftware product. Fortunately this is generally compiled code, but thepoint is that this is a shaky distribution situation looked at in theabstract. The most mundane (and harmless in the minds of mostperpetrators) illicit copying and use of the program can be performedrather easily.

This disclosure offers, at first, an abstract approach which may or maynot prove to be economical in the broadest sense (where the recoveredrevenue to cost ratio would exceed that of most competing methods, forexample). The approach expands upon the methods and approaches alreadylaid out in the section on plastic credit and debit cards. The abstractconcept begins by positing a "large set of unique patterns," uniqueamong themselves, unique to a given product, and unique to a givenpurchaser of that product. This set of patterns effectively containsthousands and even millions of absolutely unique "secret keys" to usethe cryptology vernacular. Importantly and distinctly, these keys arenon-deterministic, that is, they do not arise from singular sub-1000 orsub-2000 bit keys such as with the RSA key based systems. This large setof patterns is measured in kilobytes and Megabytes, and as mentioned, isnon-deterministic in nature. Furthermore, still at the most abstractlevel, these patterns are fully capable of being encrypted via standardtechniques and analyzed within the encrypted domain, where the analysisis made on only a small portion of the large set of patterns, and thateven in the worst case scenario where a would-be pirate is monitoringthe step-by-step microcode instructions of a microprocessor, thisgathered information would provide no useful information to the would-bepirate. This latter point is an important one when it comes to"implementation security" as opposed to "innate security" as will bebriefly discussed below.

So what could be the differential properties of this type of key basedsystem as opposed to, for example, the RSA cryptology methods which arealready well respected, relatively simple, etc. etc? As mentionedearlier, this discussion is not going to attempt a commercialside-by-side analysis. Instead, we'll just focus on the differingproperties. The main distinguishing features fall out in theimplementation realm (the implementation security). One example is thatin single low-bit-number private key systems, the mere local use andre-use of a single private key is an inherently weak link in anencrypted transmission system. ["Encrypted transmission systems" arediscussed here in the sense that securing the paid-for use of softwareprograms will in this discussion require de facto encryptedcommunication between a user of the software and the "bank" which allowsthe user to use the program; it is encryption in the service ofelectronic financial transactions looked at in another light.] Would-behackers wishing to defeat so-called secure systems never attack thefundamental hard-wired security (the innate security) of the pristineusage of the methods, they attack the implementation of those methods,centered around human nature and human oversights. It is here, still inthe abstract, that the creation of a much larger key base, which isitself non-deterministic in nature, and which is more geared towardeffectively throw-away keys, begins to "idiot proof" the morehistorically vulnerable implementation of a given secure system. Thehuge set of keys is not even comprehensible to the average holder ofthose keys, and their use of those keys (i.e., the "implementation" ofthose keys) can randomly select keys, easily throw them out after atime, and can use them in a way that no "eavesdropper" will gain anyuseful information in the eavesdropping, especially when well within amillionth of the amount of time that an eavesdropper could "decipher" akey, its usefulness in the system would be long past.

Turning the abstract to the semi-concrete, one possible new approach tosecurely delivering a software product to ONLY the bonafide purchasersof that product is the following. In a mass economic sense, this newmethod is entirely founded upon a modest rate realtime digitalconnectivity (often, but not necessarily standard encrypted) between auser's computer network and the selling company's network. At firstglance this smells like trouble to any good marketing person, andindeed, this may throw the baby out with the bathwater if by trying torecover lost revenues, you lose more legitimate revenue along the way(all part of the bottom line analysis). This new method dictates that acompany selling a piece of software supplies to anyone who is willing totake it about 99.8% of its functional software for local storage on auser's network (for speed and minimizing transmission needs). This "freecore program" is entirely unfunctional and designed so that even thecraftiest hackers can't make use of it or "decompile it" in some sense.Legitimate activation and use of this program is performed purely on ainstruction-cycle-count basis and purely in a simple very low overheadcommunications basis between the user's network and the company'snetwork. A customer who wishes to use the product sends payment to thecompany via any of the dozens of good ways to do so. The customer issent, via common shipment methods, or via commonly secured encrypteddata channels, their "huge set of unique secret keys." If we were tolook at this large set as if it were an image, it would look just likethe snowy images discussed over and over again in other parts of thisdisclosure. (Here, the "signature" is the image, rather than beingimperceptibly placed onto another image). The special nature of thislarge set is that it is what we might call "ridiculously unique" andcontains a large number of secret keys. (The "ridiculous" comes from thesimple math on the number of combinations that are possible with, say 1Megabyte of random bit values, equaling exactly the number that "allones" would give, thus 1 Megabyte being approximately 10 raised to the2,400,000 power, plenty of room for many people having many throwawaysecret keys). It is important to re-emphasize that the purchased entityis literally: productive use of the tool. The marketing of this wouldneed to be very liberal in its allotment of this productivity, sinceper-use payment schemes notoriously turn off users and can lower overallrevenues significantly.

This large set of secret keys is itself encrypted using standardencryption techniques. The basis for relatively higher "implementationsecurity" can now begin to manifest itself. Assume that the user nowwishes to use the software product. They fire up the free core, and thefree core program finds that the user has installed their large set ofunique encrypted keys. The core program calls the company network anddoes the usual handshaking. The company network, knowing the large setof keys belonging to that bonafide user, sends out a query on somesimple set of patterns, almost exactly the same way as described in thesection on the debit and credit cards. The query is such a small set ofthe whole, that the inner workings of the core program do not even needto decrypt the whole set of keys, only certain parts of the keys, thusno decrypted version of the keys ever exist, even within the machinecycles on the local computer itself. As can be seen, this does notrequire the "signatures within a picture" methods of the maindisclosure, instead, the many unique keys ARE the picture. The coreprogram interrogates the keys by performing certain dot products, thensends the dot products back to the company's network for verification.See FIG. 25 and the accompanying discussion for typical details on averification transaction. Generally encrypted verification is sent, andthe core program now "enables" itself to perform a certain amount ofinstructions, for example, allowing 100,000 characters being typed intoa word processing program (before another unique key needs to betransmitted to enable another 100,000). In this example, a purchaser mayhave bought the number of instructions which are typically used within aone year period by a single user of the word processor program. Thepurchaser of this product now has no incentive to "copy" the program andgive it to their friends and relatives.

All of the above is well and fine except for two simple problems. Thefirst problem can be called "the cloning problem" and the second "thebig brother problem." The solutions to these two problems are intimatelylinked. The latter problem will ultimately become a purely socialproblem, with certain technical solutions as mere tools not ends.

The cloning problem is the following. It generally applies to a moresophisticated pirate of software rather than the currently common"friend gives their distribution CD to a friend" kind of piracy.Crafty-hacker "A" knows that if she performs a system-state clone of the"enabled" program in its entirety and installs this clone on anothermachine, then this second machine effectively doubles the value receivedfor the same money. Keeping this clone in digital storage, hacker "A"only needs to recall it and reinstall the clone after the first periodis run out, thus indefinitely using the program for a single payment, orshe can give the clone to their hacker friend "B" for a six-pack ofbeer. One good solution to this problem requires, again, a rather welldeveloped and low cost real time digital connectivity between user siteand company enabling network. This ubiquitous connectivity generallydoes not exist today but is fast growing through the Internet and thebasic growth in digital bandwidth. Part and parcel of the "enabling" isa negligible communications cost random auditing function wherein thefunctioning program routinely and irregularly performs handshakes andverifications with the company network. It does so, on average, during acycle which includes a rather small amount of productivity cycles of theprogram. The resulting average productivity cycle is in general muchless than the raw total cost of the cloning process of the overallenabled program. Thus, even if an enabled program is cloned, theusefulness of that instantaneous clone is highly limited, and it wouldbe much more cost effective to pay the asking price of the sellingcompany than to repeat the cloning process on such short time periods.Hackers could break this system for fun, but certainly not for profit.The flip side to this arrangement is that if a program "calls up" thecompany's network for a random audit, the allotted productivity countfor that user on that program is accounted for, and that in cases wherebonafide payment has not been received, the company network simplywithholds its verification and the program no longer functions. We'reback to where users have no incentive to "give this away" to friendsunless it is an explicit gift (which probably is quite appropriate ifthey have indeed paid for it: "do anything you like with it, you paidfor it").

The second problem of "big brother" and the intuitively mysterious"enabling" communications between a user's network and a company'snetwork would as mentioned be a social and perceptual problem thatshould have all manner of potential real and imagined solutions. Evenwith the best and objectively unbeatable anti-big-brother solutions,there will still be a hard-core conspiracy theory crowd claiming it justain't so. With this in mind, one potential solution is to set up asingle program registry which is largely a public or non-profitinstitution to handling and coordinating the realtime verificationnetworks. Such an entity would then have company clients as well as userclients. An organization such as the Software Publishers Association,for example, may choose to lead such an effort.

Concluding this section, it should be re-emphasized that the methodshere outlined require a highly connected distributed system, in otherwords, a more ubiquitous and inexpensive Internet than exists in mid1995. Simple trend extrapolation would argue that this is not too faroff from 1995. The growth rate in raw digital communications bandwidthalso argues that the above system might be more practical, sooner, thanit might first appear. (The prospect of interactive TV brings with itthe promise of a fast network linking millions of sites around theworld.)

USE OF CURRENT CRYPTOLOGY METHODS IN CONJUNCTION WITH THIS TECHNOLOGY

It should be briefly noted that certain implementations of theprinciples of this technology probably can make good use of currentcryptographic technologies. One case in point might be a system wherebygraphic artists and digital photographers perform realtime registrationof their photographs with the copyright office. It might be advantageousto send the master code signals, or some representative portion thereof,directly to a third party registry. In this case, a photographer wouldwant to know that their codes were being transmitted securely and notstolen along the way. In this case, certain common cryptographictransmission might be employed. Also, photographers or musicians, or anyusers of this technology, may want to have reliable time stampingservices which are becoming more common. Such a service could beadvantageously used in conjunction with the principles of thistechnology.

DETAILS ON THE LEGITIMATE AND ILLEGITIMATE DETECTION AND REMOVAL OFINVISIBLE SIGNATURES

In general, if a given entity can recognize the signatures hidden withina given set of empirical data, that same entity can take steps to removethose signatures. In practice, the degree of difficulty between theformer condition and the latter condition can be made quite large,fortunately. On one extreme, one could posit a software program which isgenerally very difficult to "decompile" and which does recognitionfunctions on empirical data. This same bit of software could notgenerally be used to "strip" the signatures (without going to extremelengths). On the other hand, if a hacker goes to the trouble ofdiscovering and understanding the "public codes" used within some systemof data interchange, and that hacker knows how to recognize thesignatures, it would not be a large step for that hacker to read in agiven set of signed data and create a data set with the signatureseffectively removed. In this latter example, interestingly enough, therewould often be telltale statistics that signatures had been removed,statistics which will not be discussed here.

These and other such attempts to remove the signatures we can refer toas illicit attempts. Current and past evolution of the copyright lawshave generally targeted such activity as coming under criminal activityand have usually placed such language, along with penalties andenforcement language, into the standing laws. Presumably any and allpractitioners of this signature technology will go to lengths to makesure that the same kind of a) creation, b) distribution, and c) use ofthese kinds of illicit removal of copyright protection mechanisms arecriminal offenses subject to enforcement and penalty. On the other hand,it is an object of this technology to point out that through therecognition steps outlined in this disclosure, software programs can bemade such that the recognition of signatures can simply lead to theirremoval by inverting the known signatures by the amount equal to theirfound signal energy in the recognition process (i.e., remove the size ofthe given code signal by exact amount found). By pointing this out inthis disclosure, it is clear that such software or hardware whichperforms this signature removal operation will not only (presumably) becriminal, but it will also be liable to infringement to the extent thatit is not properly licensed by the holders of the (presumably) patentedtechnology.

The case of legitimate and normal recognition of the signatures isstraightforward. In one example, the public signatures coulddeliberately be made marginally visible (i.e. their intensity would bedeliberately high), and in this way a form of sending out "proof comps"can be accomplished. "Comps" and "proofs" have been used in thephotographic industry for quite some time, where a degraded image ispurposely sent out to prospective customers so that they might evaluateit but not be able to use it in a commercially meaningful way. In thecase of this technology, increasing the intensity of the public codescan serve as a way to "degrade" the commercial value intentionally, thenthrough hardware or software activated by paying a purchase price forthe material, the public signatures can be removed (and possiblyreplaced by a new invisible tracking code or signature, public and/orprivate.

MONITORING STATIONS AND MONITORING SERVICES

Ubiquitous and cost effective recognition of signatures is a centralissue to the broadest proliferation of the principles of thistechnology. Several sections of this disclosure deal with this topic invarious ways. This section focuses on the idea that entities such asmonitoring nodes, monitoring stations, and monitoring agencies can becreated as part of a systematic enforcement of the principles of thetechnology. In order for such entities to operate, they requireknowledge of the master codes, and they may require access to empiricaldata in its raw (unencrypted and untransformed) form. (Having access tooriginal unsigned empirical data helps in finer analyses but is notnecessary.)

Three basic forms of monitoring stations fall out directly from theadmittedly arbitrarily defined classes of master codes: a privatemonitoring station, a semi-public, and a public. The distinctions aresimply based on the knowledge of the master codes. An example of thefully private monitoring station might be a large photographic stockhouse which decides to place certain basic patterns into its distributedmaterial which it knows that a truly crafty pirate could decipher andremove, but it thinks this likelihood is ridiculously small on aneconomic scale. This stock house hires a part-time person to come in andrandomly check high value ads and other photography in the public domainto search for these relatively easy to find base patterns, as well aschecking photographs that stock house staff members have "spotted" andthink it might be infringement material. The part time person cranksthrough a large stack of these potential infringement cases in a fewhours, and where the base patterns are found, now a more thoroughanalysis takes place to locate the original image and go through thefull process of unique identification as outlined in this disclosure.Two core economic values accrue to the stock house in doing this, valueswhich by definition will outweigh the costs of the monitoring serviceand the cost of the signing process itself. The first value is inletting their customers and the world know that they are signing theirmaterial and that the monitoring service is in place, backed up bywhatever statistics on the ability to catch infringers. This is thedeterrent value, which probably will be the largest value eventually. Ageneral pre-requisite to this first value is the actual recoveredroyalties derived from the monitoring effort and its building of a trackrecord for being formidable (enhancing the first value).

The semi-public monitoring stations and the public monitoring stationslargely follow the same pattern, although in these systems it ispossible to actually set up third party services which are givenknowledge of the master codes by clients, and the services merely fishthrough thousands and millions of "creative property" hunting for thecodes and reporting the results to the clients. ASCAP and BMI have"lower tech" approaches to this basic service.

A large coordinated monitoring service using the principles of thistechnology would classify its creative property supplier clients intotwo basic categories, those that provide master codes themselves andwish the codes to remain secure and unpublished, and those that usegenerally public domain master codes (and hybrids of the two, ofcourse). The monitoring service would perform daily samplings (checks)of publicly available imagery, video, audio, etc., doing high levelpattern checks with a bank of supercomputers. Magazine ads and imageswould be scanned in for analysis, video grabbed off of commercialchannels would be digitized, audio would be sampled, public Internetsites randomly downloaded, etc. These basic data streams would then befed into an ever-churning monitoring program which randomly looks forpattern matches between its large bank of public and private codes, andthe data material it is checking. A small sub-set, which itself willprobably be a large set, will be flagged as potential match candidates,and these will be fed into a more refined checking system which beginsto attempt to identify which exact signatures may be present and toperform a more fine analysis on the given flagged material. Presumably asmall set would then fall out as flagged match material, owners of thatmaterial would be positively identified and a monitoring report would besent to the client so that they can verify that it was a legitimate saleof their material. The same two values of the private monitoring serviceoutlined above apply in this case as well. The monitoring service couldalso serve as a formal bully in cases of a found and proveninfringement, sending out letters to infringing parties witnessing thefound infringement and seeking inflated royalties so that the infringingparty might avoid the more costly alternative of going to court.

METHOD FOR EMBEDDING SUBLIMINAL REGISTRATION PATTERNS INTO IMAGES ANDOTHER SIGNALS

The very notion of reading embedded signatures involves the concept ofregistration. The underlying master noise signal must be known, and itsrelative position needs to be ascertained (registered) in order toinitiate the reading process itself (e.g. the reading of the 1's and 0'sof the N-bit identification word). When one has access to the originalor a thumbnail of the unsigned signal, this registration process isquite straightforward. When one doesn't have access to this signal,which is often the case in universal code applications of thistechnology, then different methods must be employed to accomplish thisregistration step. The example of pre-marked photographic film andpaper, where by definition there will never be an "unsigned" original,is a perfect case in point of the latter.

Many earlier sections have variously discussed this issue and presentedcertain solutions. Notably, the section on "simple" universal codesdiscusses one embodiment of a solution where a given master code signalis known a priori, but its precise location (and indeed, it existence ornon-existence) is not known. That particular section went on to give aspecific example of how a very low level designed signal can be embeddedwithin a much larger signal, wherein this designed signal isstandardized so that detection equipment or reading processes can searchfor this standardized signal even though its exact location is unknown.The brief section on 2D universal codes went on to point out that thisbasic concept could be extended into 2 dimensions, or, effectively, intoimagery and motion pictures. Also, the section on symmetric patterns andnoise patterns outlined yet another approach to the two dimensionalcase, wherein the nuances associated with two dimensional scale androtation were more explicitly addressed. Therein, the idea was notmerely to determine the proper orientation and scale of underlying noisepatterns, but to have information transmitted as well, e.g., the N ringsfor the N-bit identification word.

This section now attempts to isolate the sub-problem of registeringembedded patterns for registration's sake. Once embedded patterns areregistered, we can then look again at how this registration can servebroader needs. This section presents yet another technique for embeddingpatterns, a technique which can be referred to as "subliminal digitalgraticules". "Graticules"--other words such as fiducials or reticles orhash marks could just as well be used--conveys the idea of calibrationmarks used for the purposes of locating and/or measuring something. Inthis case, they are employed as low level patterns which serve as a kindof gridding function. That gridding function itself can be a carrier of1 bit of information, as in the universal 1 second of noise (its absenceor presence, copy me, don't copy me), or it can simply find theorientation and scale of other information, such as embedded signatures,or it can simply orient an image or audio object itself.

FIGS. 29 and 30 visually summarize two related methods which illustrateapplicant's subliminal digital graticules. As will be discussed, themethod of FIG. 29 may have slight practical advantages over the methodoutlined in FIG. 30, but both methods effectively decompose the problemof finding the orientation of an image into a series of steps whichconverge on a solution. The problem as a whole can be simply stated asthe following: given an arbitrary image wherein a subliminal digitalgraticule may have been stamped, then find the scale, rotation, andorigin (offset) of the subliminal digital graticule.

The beginning point for subliminal graticules is in defining what theyare. Simply put, they are visual patterns which are directly added intoother images, or as the case may be, exposed onto photographic film orpaper. The classic double exposure is not a bad analogy, though indigital imaging this specific concept becomes rather stretched. Thesepatterns will generally be at a very low brightness level or exposurelevel, such that when they are combined with "normal" images andexposures, they will effectively be invisible (subliminal) and just asthe case with embedded signatures, they will by definition not interferewith the broad value of the images to which they are added.

FIGS. 29 and 30 define two classes of subliminal graticules, each asrepresented in the spatial frequency domain, also known as the UV plane,1000. Common two dimensional fourier transform algorithms can transformany given image into its UV plane conjugate. To be precise, thedepictions in FIGS. 29 and 30 are the magnitudes of the spatialfrequencies, whereas it is difficult to depict the phase and magnitudewhich exists at every point.

FIG. 29 shows the example of six spots in each quadrant along the 45degree lines, 1002. These are exaggerated in this figure, in that thesespots would be difficult to discern by visual inspection of the UV planeimage. A rough depiction of a "typical" power spectrum of an arbitraryimage as also shown, 1004. This power spectrum is generally as unique asimages are unique. The subliminal graticules are essentially thesespots. In this example, there are six spatial frequencies combined alongeach of the two 45 degree axes. The magnitudes of the six frequenciescan be the same or different (we'll touch upon this refinement later).Generally speaking, the phases of each are different from the others,including the phases of one 45 degree axis relative to the other. FIG.31 depicts this graphically. The phases in this example are simplyrandomly placed between PI and -PI, 1008 and 1010. Only two axes arerepresented in FIG. 31--as opposed to the four separate quadrants, sincethe phase of the mirrored quadrants are simply PI/2 out of phase withtheir mirrored counterparts. If we turned up the intensity on thissubliminal graticule, and we transformed the result into the imagedomain, then we would see a weave-like cross-hatching pattern as relatedin the caption of FIG. 29. As stated, this weave-like pattern would beat a very low intensity when added to a given image. The exactfrequencies and phases of the spectral components utilized would bestored and standardized. These will become the "spectral signatures"that registration equipment and reading processes will seek to measure.

Briefly, FIG. 30 has a variation on this same general theme. FIG. 30lays out a different class of graticules in that the spectral signatureis a simple series of concentric rings rather than spots along the 45degree axes. FIG. 32 then depicts a quasi-random phase profile as afunction along a half-circle (the other half of the circle then beingPI/2 out of phase with the first half). These are simple examples andthere are a wide variety of variations possible in designing the phaseprofiles and the radii of the concentric rings. The transform of thistype of subliminal graticule is less of a "pattern" as with theweave-like graticule of FIG. 29, where it has more of a randomappearance like a snowy image.

The idea behind both types of graticules is the following: embed aunique pattern into an image which virtually always will be quitedistinct from the imagery into which it will be added, but which hascertain properties which facilitate fast location of the pattern, aswell as accuracy properties such that when the pattern is generallylocated, its precise location and orientation can be found to some highlevel of precision. A corollary to the above is to design the patternsuch that the pattern on average minimally interferes with the typicalimagery into which it will be added, and has maximum energy relative tothe visibility of the pattern.

Moving on to the gross summary of how the whole process works, thegraticule type of FIG. 29 facilitates an image processing search whichbegins by first locating the rotation axes of the subliminal graticule,then locating the scale of the graticule, then determining the origin oroffset. The last step here identifies which axes is which of the two 45degree axes by determining phase. Thus even if the image is largelyupside down, an accurate determination can be made. The first step andthe second step can both be accomplished using only the power spectrumdata, as opposed to the phase and magnitude. The phase and magnitudesignals can then be used to "fine tune" the search for the correctrotation angle and scale. The graticule of FIG. 30 switches the firsttwo steps above, where the scale is found first, then the rotation,followed by precise determination of the origin. Those skilled in theart will recognize that determining these outstanding parameters, alongtwo axes, are sufficient to fully register an image. The "engineeringoptimization challenge" is to maximize the uniqueness and brightness ofthe patterns relative to their visibility, while minimizing thecomputational overhead in reaching some specified level of accuracy andprecision in registration. In the case of exposing photographic film andpaper, clearly an additional engineering challenge is the outlining ofeconomic steps to get the patterns exposed onto the film and paper inthe first place, a challenge which has been addressed in previoussections.

The problem and solution as above defined is what was meant byregistration for registration's sake. It should be noted that there wasno mention made of making some kind of value judgement on whether or nota graticule is indeed being found or not. Clearly, the above steps couldbe applied to images which do not in fact have graticules inside them,the measurements then simply chasing noise. Sympathy needs to beextended to the engineer who is assigned the task of setting "detectionthresholds" for these types of patterns, or any others, amidst theincredibly broad range of imagery and environmental conditions in whichthe patterns must be sought and verified. [Ironically, this is where thepure universal one second of noise stood in a previous section, and thatwas why it was appropriate to go beyond merely detecting or notdetecting this singular signal, i.e. adding additional informationplanes]. Herein is where some real beauty shows up: in the combinationof the subliminal graticules with the now-registered embedded signaturesdescribed in other parts of this disclosure. Specifically, once a"candidate registration" is found--paying due homage to the idea thatone may be chasing noise--then the next logical step is to perform areading process for, e.g., a 64 bit universal code signature. As furtherexample, we can imagine that 44 bits of the 64 bit identification wordare assigned as an index of registered users--serial numbers if youwill. The remaining 20 bits are reserved as a hash code--as is wellknown in encryption arts--on the 44 bit identification code thus found.Thus, in one swoop, the 20 bits serve as the "yes, I have a registeredimage" or "no, I don't" answer. More importantly, perhaps, this allowsfor a system which can allow for maximum flexibility in preciselydefining the levels of "false positives" in any given automatedidentification system. Threshold based detection will always be at themercy of a plethora of conditions and situations, ultimately resting onarbitrary decisions. Give me N coin flips any day.

Back on point, these graticule patterns must first be added to an image,or exposed onto a piece of film. An exemplary program reads in anarbitrarily sized digital image and adds a specified graticule to thedigital image to produce an output image. In the case of film, thegraticule pattern would be physically exposed onto the film eitherbefore, during, or after exposure of the primary image. All of thesemethods have wide variations in how they might be accomplished.

The searching and registering of subliminal graticules is the moreinteresting and involved process. This section will first describe theelements of this process, culminating in the generalized flow chart ofFIG. 37.

FIG. 33 depicts the first major "search" step in the registrationprocess for graticules of the type in FIG. 29. A suspect image (or ascan of a suspect photograph) is first transformed in its fourierrepresentation using well known 2D FFT routines. The input image maylook like the one in FIG. 36, upper left image. FIG. 33 conceptuallyrepresents the case where the image and hence the graticules have notbeen rotated, though the following process fully copes with rotationissues. After the suspect image has been transformed, the power spectrumof the transform is then calculated, being simply the square root of theaddition of the two squared moduli. it is also a good idea to perform amild low pass filter operation, such as a 3×3 blur filter, on theresulting power spectrum data, so that later search steps don't needincredibly fine spaced steps. Then the candidate rotation angles from 0through 90 degrees (or 0 to PI/2 in radian) are stepped through. Alongany given angle, two resultant vectors are calculated, the first is thesimple addition of power spectrum values at a given radius along thefour lines emanating from the origin in each quadrant. The second vectoris the moving average of the first vector. Then, a normalized powerprofile is calculated as depicted in both 1022 and 1024, the differencebeing that one plot is along an angle which does not align with thesubliminal graticules, and the other plot does align. The normalizationstipulates that the first vector is the numerator and the second vectoris the denominator in the resultant vector. As can be seen in FIG. 33,1022 and 1024, a series of peaks (which should be "six" instead of"five" as is drawn) develops when the angle aligns along its properdirection. Detection of these peaks can be effected by setting somethreshold on the normalized values, and integrating their total alongthe whole radial line. A plot, 1026, from 0 to 90 degrees is depicted inthe bottom of FIG. 33, showing that the angle 45 degrees contains themost energy. In practice, this signal is often much lower than thatdepicted in this bottom figure, and instead of picking the highest valueas the "found rotation angle," one can simply find the top few candidateangles and submit these candidates to the next stages in the process ofdetermining the registration. It can be appreciated by those practicedin the art that the foregoing was simply a known signal detectionscheme, and that there are dozens of such schemes that can ultimately becreated or borrowed. The simple requirement of the first stage processis to whittle down the candidate rotation angles to just a few, whereinmore refined searches can then take over.

FIG. 34 essentially outlines the same type of gross searching in thepower spectral domain. Here instead we first search for the gross scaleof the concentric rings, stepping from a small scale through a largescale, rather than the rotation angle. The graph depicted in 1032 is thesame normalized vector as in 1022 and 1024, but now the vector valuesare plotted as a function of angle around a semi-circle. The movingaverage denominator still needs to be calculated in the radialdirection, rather than the tangential direction. As can be seen, asimilar "peaking" in the normalized signal occurs when the scannedcircle coincides with a graticule circle, giving rise to the plot 1040.The scale can then be found on the bottom plot by matching the knowncharacteristics of the concentric rings (i.e. their radii) with theprofile in 1040.

FIG. 35 depicts the second primary step in registering subliminalgraticules of the type in FIG. 29. Once we have found a few rotationcandidates from the methods of FIG. 33, we then take the plots of thecandidate angles of the type of 1022 and 1024 and perform what theinventor refers to as a "scaled kernel" matched filtering operation onthose vectors. The scaled kernel refers to the fact that the kernel inthis case is a known non-harmonic relationship of frequencies,represented as the lines with x's at the top in 1042 and 1044, and thatthe scale of these frequencies is swept through some pre-determinedrange, such as 25% to 400% of some expected scale at 100%. The matchedfilter operation simply adds the resultant multiplied values of thescaled frequencies and their plot counterparts. Those practiced in theart will recognize the similarity of this operation with the very wellknown matched filter operation. The resulting plot of the matched filteroperation will look something like 1046 at the bottom of FIG. 35. Eachcandidate angle from the first step will generate its own such plot, andat this point the highest value of all of the plots will become ourcandidate scale, and the angle corresponding to the highest value willbecome our primary candidate rotation angle. Likewise for graticules ofthe type in FIG. 30, a similar "scaled-kernel" matched filteringoperation is performed on the plot 1040 of FIG. 34. This generallyprovides for a single candidate scale factor. Then, using the storedphase plots 1012, 1014 and 1016 of FIG. 32, a more traditional matchedfiltering operation is applied between these stored plots (as kernels),and the measured phase profiles along the half-circles at the previouslyfound scale.

The last step in registering graticules of the type in FIG. 29 is toperform a garden variety matched filter between the known (eitherspectral or spatial) profile of the graticule with the suspect image.Since both the rotation, scale and orientation are now known fromprevious steps, this matched filtering operation is straightforward. Ifthe accuracies and precision of preceding steps have not exceeded designspecifications in the process, then a simple micro-search can beperformed in the small neighborhood about the two parameters scale androtation, a matched filter operation performed, and the highest valuefound will determine a "fine tuned" scale and rotation. In this way, thescale and rotation can be found to within the degree set by the noiseand cross-talk of the suspect image itself. Likewise, once the scale androtation of the graticules of the type in FIG. 30 are found, then astraightforward matched filter operation can complete the registrationprocess, and similar "fine tuning" can be applied.

Moving on to a variant of the use of the graticules of the type in FIG.29, FIG. 36 presents the possibility for finding the subliminalgraticules without the need for performing a computationally expensive 2dimensional FFT (fast fourier transform). In situations wherecomputational overhead is a major issue, then the search problem can bereduced to a series of one-dimensional steps. FIG. 36 broadly depictshow to do this. The figure at the top left is an arbitrary image inwhich the graticules of the type of FIG. 29 have been embedded. Startingat angle 0, and finishing with an angle just below 180 degrees, andstepping by, for example 5 degrees, the grey values along the depictedcolumns can be simply added to create a resulting column-integratedscan, 1058. The figure in the top right, 1052, depicts one of the manyangles at which this will be performed. This column-integrated scan thenis transformed into its fourier representation using the lesscomputationally expensive 1 dimensional FFT. This is then turned into amagnitude or "power" plot (the two are different), and a similarnormalized vector version created just like 1022 and 1024 in FIG. 33.The difference now is that as the angle approaches the proper angles ofthe graticules, slowly the tell-tale peaks begin to appear in the1024-like plots, but they generally show up at higher frequencies thanexpected for a given scale, since we are generally slightly off on ourrotation. It remains to find the angle which maximizes the peak signals,thus zooming in on the proper rotation. Once the proper rotation isfound, then the scaled kernel matched filter process can be applied,followed by traditional matched filtering, all as previously described.Again, the sole idea of the "short-cut" of FIG. 36 is to greatly reducethe computational overhead in using the graticules of the type in FIG.29. The inventor has not reduced this method of FIG. 36 to practice andcurrently has no data on precisely how much computational savings, ifany, will be realized. These efforts will be part of applicationspecific development of the method.

FIG. 37 simply summarizes, in order of major process steps, the methodsrevolving around the graticules of the type in FIG. 29.

In another variant embodiment, the graticule energy is not concentratedaround the 45 degree angles in the spatial frequency domain. (Somecompression algorithms, such as JPEG, tend to particularly attenuateimage energy at this orientation.) Instead, the energy is more widelyspatially spread. FIG. 29A shows one such distribution. The frequenciesnear the axes, and near the origin are generally avoided, since this iswhere the image energy is most likely concentrated.

Detection of this energy in a suspect image again relies on techniqueslike that reviewed above. However, instead of first identifying theaxes, then the rotation, and then the scale, a more global patternmatching procedure is performed in which all are determined in a bruteforce effort. Those skilled in the art will recognize that theFourier-Mellin transform is well suited for use in such pattern matchingproblems.

The foregoing principles find application, for example, inphoto-duplication kiosks. Such devices typically include a lens forimaging a customer-provided original (e.g. a photographic print or film)onto an opto-electronic detector, and a print-writing device forexposing and developing an emulsion substrate (again photographic paperor film) in accordance with the image data gathered by the detector. Thedetails of such devices are well known to those skilled in the art, andare not belabored here.

In such systems, a memory stores data from the detector, and a processor(e.g. a Pentium microprocessor with associated support components) canbe used to process the memory data to detect the presence of copyrightdata steganographically encoded therein. If such data is detected, theprint-writing is interrupted.

To avoid defeat of the system by manual rotation of the original imageoff-axis, the processor desirably implements the above-describedtechnique to effect automatic registration of the original,notwithstanding scale, rotation, and origin offset factors. If desired,a digital signal processing board can be employed to offload certain ofthe FFT processing from the main (e.g. Pentium) processor. After arotated/scaled image is registered, detection of any steganographicallyencoded copyright notice is straightforward and assures the machine willnot be used in violation of a photographer's copyright.

While the techniques disclosed above have make use of applicant'spreferred steganographic encoding methods, the principles thereof aremore widely applicable and can be used in many instances in whichautomatic registration of an image is to be effected.

USE OF EMBEDDED SIGNATURES IN VIDEO, WHEREIN A VIDEO DATA STREAMEFFECTIVELY SERVES AS A HIGH-SPEED ONE WAY MODEM

Through use of the universal coding system outlined in earlier sections,and through use of master snowy frames which change in a simple fashionframe to frame, a simple receiver can be designed such that it haspre-knowledge of the changes in the master snowy frames and cantherefore read a changing N-bit message word frame by frame (or I-frameby I-frame as the case may be in MPEG video). In this way, a motionpicture sequence can be used as a high speed one-way informationchannel, much like a one-way modem. Consider, for example, a frame ofvideo data with N scan lines which is steganographically encoded toeffect the transmission of an N-bit message. If there are 484 scan linesin a frame (N), and frames change 30 times a second, an informationchannel with a capacity comparable to a 14.4 kilobaud modem is achieved.

In actual practice, a data rate substantially in excess of N bits perframe can usually be achieved, yielding transmission rates nearer thatof ISDN circuits.

FRAUD PREVENTION IN WIRELESS COMMUNICATIONS

In the cellular telephone industry, hundreds of millions of dollars ofrevenue is lost each year through theft of services. While some servicesare lost due to physical theft of cellular telephones, the morepernicious threat is posed by cellular telephone hackers.

Cellular telephone hackers employ various electronic devices to mimicthe identification signals produced by an authorized cellular telephone.(These signals are sometimes called authorization signals, verificationnumbers, signature data, etc.) Often, the hacker learns of these signalsby eavesdropping on authorized cellular telephone subscribers andrecording the data exchanged with the cell cite. By artful use of thisdata, the hacker can impersonate an authorized subscriber and dupe thecarrier into completing pirate calls.

In the prior art, identification signals are segregated from the voicesignals. Most commonly, they are temporally separated, e.g. transmittedin a burst at the time of call origination. Voice data passes throughthe channel only after a verification operation has taken place on thisidentification data. (Identification data is also commonly included indata packets sent during the transmission.) Another approach is tospectrally separate the identification, e.g. in a spectral subbandoutside that allocated to the voice data.

Other fraud-deterrent schemes have also been employed. One class oftechniques monitors characteristics of a cellular telephone's RF signalto identify the originating phone. Another class of techniques useshandshaking protocols, wherein some of the data returned by the cellulartelephone is based on an algorithm (e.g. hashing) applied to random datasent thereto.

Combinations of the foregoing approaches are also sometimes employed.

U.S. Pat. Nos. 5,465,387, 5,454,027, 5,420,910, 5,448,760, 5,335,278,5,345,595, 5,144,649, 5,204,902, 5,153,919 and 5,388,212 detail variouscellular telephone systems, and fraud deterrence techniques usedtherein. The disclosures of these patents are incorporated by reference.

As the sophistication of fraud deterrence systems increases, so does thesophistication of cellular telephone hackers. Ultimately, hackers havethe upper hand since they recognize that all prior art systems arevulnerable to the same weakness: the identification is based on someattribute of the cellular telephone transmission outside the voice data.Since this attribute is segregated from the voice data, such systemswill always be susceptible to pirates who electronically "patch" theirvoice into a composite electronic signal having the attribute(s)necessary to defeat the fraud deterrence system.

To overcome this failing, preferred embodiments of this aspect of thepresent technology steganographically encode the voice signal withidentification data, resulting in "in-band" signalling (in-band bothtemporally and spectrally). This approach allows the carrier to monitorthe user's voice signal and decode the identification data therefrom.

In one such form of the technology, some or all of the identificationdata used in the prior art (e.g. data transmitted at call origination)is repeatedly steganographically encoded in the user's voice signal aswell. The carrier can thus periodically or aperiodically check theidentification data accompanying the voice data with that sent at callorigination to ensure they match. If they do not, the call is identifiedas being hacked and steps for remediation can be instigated such asinterrupting the call.

In another form of the technology, a randomly selected one of severalpossible messages is repeatedly steganographically encoded on thesubscriber's voice. An index sent to the cellular carrier at call set-upidentifies which message to expect. If the message steganographicallydecoded by the cellular carrier from the subscriber's voice does notmatch that expected, the call is identified as fraudulent.

In a preferred form of this aspect of the technology, the steganographicencoding relies on a pseudo random data signal to transform the messageor identification data into a low level noise-like signal superimposedon the subscriber's digitized voice signal. This pseudo random datasignal is known, or knowable, to both the subscriber's telephone (forencoding) and to the cellular carrier (for decoding). Many suchembodiments rely on a deterministic pseudo random number generatorseeded with a datum known to both the telephone and the carrier. Insimple embodiments this seed can remain constant from one call to thenext (e.g. a telephone ID number). In more complex embodiments, apseudo-one-time pad system may be used, wherein a new seed is used foreach session (i.e. telephone call). In a hybrid system, the telephoneand cellular carrier each have a reference noise key (e.g. 10,000 bits)from which the telephone selects a field of bits, such as 50 bitsbeginning at a randomly selected offset, and each uses this excerpt asthe seed to generate the pseudo random data for encoding. Data sent fromthe telephone to the carrier (e.g. the offset) during call set-up allowsthe carrier to reconstruct the same pseudo random data for use indecoding. Yet further improvements can be derived by borrowing basictechniques from the art of cryptographic communications and applyingthem to the steganographically encoded signal detailed in thisdisclosure.

Details of applicant's preferred techniques for steganographicencoding/decoding with a pseudo random data stream are more particularlydetailed in the previous portions of this specification, but the presenttechnology is not limited to use with such techniques.

The reader is presumed to be familiar with cellular communicationstechnologies. Accordingly, details known from prior art in this fieldaren't belabored herein.

Referring to FIG. 38, an illustrative cellular system includes atelephone 2010, a cell site 2012, and a central office 2014.

Conceptually, the telephone may be viewed as including a microphone2016, an A/D converter 2018, a data formatter 2020, a modulator 2022, anRF section 2024, an antenna 2026, a demodulator 2028, a data unformatter2030, a D/A converter 2032, and a speaker 2034.

In operation, a subscriber's voice is picked up by the microphone 2016and converted to digital form by the A/D converter 2018. The dataformatter 2020 puts the digitized voice into packet form, addingsynchronization and control bits thereto. The modulator 2022 convertsthis digital data stream into an analog signal whose phase and/oramplitude properties change in accordance with the data being modulated.The RF section 2024 commonly translates this time-varying signal to oneor more intermediate frequencies, and finally to a UHF transmissionfrequency. The RF section thereafter amplifies it and provides theresulting signal to the antenna 2026 for broadcast to the cell site2012.

The process works in reverse when receiving. A broadcast from the cellcite is received through the antenna 2026. RF section 2024 amplifies andtranslates the received signal to a different frequency fordemodulation. Demodulator 2028 processes the amplitude and/or phasevariations of the signal provided by the RF section to produce a digitaldata stream corresponding thereto. The data unformatter 2030 segregatesthe voice data from the associated synchronization/control data, andpasses the voice data to the D/A converter for conversion into analogform. The output from the D/A converter drives the speaker 2034, throughwhich the subscriber hears the other party's voice.

The cell site 2012 receives broadcasts from a plurality of telephones2010, and relays the data received to the central office 2014. Likewise,the cell site 2012 receives outgoing data from the central office andbroadcasts same to the telephones.

The central office 2014 performs a variety of operations, including callauthentication, switching, and cell hand-off.

(In some systems, the functional division between the cell site and thecentral station is different than that outlined above. Indeed, in somesystems, all of this functionality is provided at a single site.)

In an exemplary embodiment of this aspect of the technology, eachtelephone 2010 additionally includes a steganographic encoder 2036.Likewise, each cell site 2012 includes a steganographic decoder 2038.The encoder operates to hide an auxiliary data signal among the signalsrepresenting the subscriber's voice. The decoder performs the reciprocalfunction, discerning the auxiliary data signal from the encoded voicesignal. The auxiliary signal serves to verify the legitimacy of thecall.

An exemplary steganographic encoder 2036 is shown in FIG. 39.

The illustrated encoder 2036 operates on digitized voice data, auxiliarydata, and pseudo-random noise (PRN) data. The digitized voice data isapplied at a port 2040 and is provided, e.g., from A/D converter 2018.The digitized voice may comprise 8-bit samples. The auxiliary data isapplied at a port 2042 and comprises, in one form of the technology, astream of binary data uniquely identifying the telephone 2010. (Theauxiliary data may additionally include administrative data of the sortconventionally exchanged with a cell site at call set-up.) Thepseudo-random noise data is applied at a port 2044 and can be, e.g., asignal that randomly alternates between "-1" and "1" values. (More andmore cellular phones are incorporating spread spectrum capablecircuitry, and this pseudo-random noise signal and other aspects of thistechnology can often "piggy-back" or share the circuitry which isalready being applied in the basic operation of a cellular unit).

For expository convenience, it is assumed that all three data signalsapplied to the encoder 2036 are clocked at a common rate, although thisis not necessary in practice.

In operation, the auxiliary data and PRN data streams are applied to thetwo inputs of a logic circuit 2046. The output of circuit 2046 switchesbetween -1 and +1 in accordance with the following table:

    ______________________________________                                                       PRNU   OUTPUT                                                  ______________________________________                                        0              -1     1                                                       0                     -1        1                                             1                                         -1                                  1                                       1            1                        ______________________________________                                    

If the auxiliary data signal is conceptualized as switching between -1and 1, instead of 0 and 1, it will be seen that circuit 2046 operates asa one-bit multiplier.)

The output from gate 2046 is thus a bipolar data stream whoseinstantaneous value changes randomly in accordance with thecorresponding values of the auxiliary data and the PRN data. It may beregarded as noise. However, it has the auxiliary data encoded therein.The auxiliary data can be extracted if the corresponding PRN data isknown.

The noise-like signal from gate 2046 is applied to the input of a scalercircuit 2048. Scaler circuit scales (e.g. multiplies) this input signalby a factor set by a gain control circuit 2050. In the illustratedembodiment, this factor can range between 0 and 15. The output fromscaler circuit 2048 can thus be represented as a five-bit data word(four bits, plus a sign bit) which changes each clock cycle, inaccordance with the auxiliary and PRN data, and the scale factor. Theoutput from the scaler circuit may be regarded as "scaled noise data"(but again it is "noise" from which the auxiliary data can be recovered,given the PRN data).

The scaled noise data is summed with the digitized voice data by asummer 2051 to provide the encoded output signal (e.g. binarily added ona sample by sample basis). This output signal is a composite signalrepresenting both the digitized voice data and the auxiliary data.

The gain control circuit 2050 controls the magnitude of the added scalednoise data so its addition to the digitized voice data does notnoticeably degrade the voice data when converted to analog form andheard by a subscriber. The gain control circuit can operate in a varietyof ways.

One is a logarithmic scaling function. Thus, for example, voice datasamples having decimal values of 0, 1 or 2 may be correspond to scalefactors of unity, or even zero, whereas voice data samples having valuesin excess of 200 may correspond to scale factors of 15. Generallyspeaking, the scale factors and the voice data values correspond by asquare root relation. That is, a four-fold increase in a value of thevoice data corresponds to approximately a two-fold increase in a valueof the scaling factor associated therewith. Another scaling functionwould be linear as derived from the average power of the voice signal.

(The parenthetical reference to zero as a scaling factor alludes tocases, e.g., in which the digitized voice signal sample is essentiallydevoid of information content.)

More satisfactory than basing the instantaneous scaling factor on asingle voice data sample, is to base the scaling factor on the dynamicsof several samples. That is, a stream of digitized voice data which ischanging rapidly can camouflage relatively more auxiliary data than astream of digitized voice data which is changing slowly. Accordingly,the gain control circuit 2050 can be made responsive to the first, orpreferably the second- or higher-order derivative of the voice data insetting the scaling factor.

In still other embodiments, the gain control block 2050 and scaler 2048can be omitted entirely.

(Those skilled in the art will recognize the potential for "rail errors"in the foregoing systems. For example, if the digitized voice dataconsists of 8-bit samples, and the samples span the entire range from 0to 255 (decimal), then the addition or subtraction of scaled noiseto/from the input signal may produce output signals that cannot berepresented by 8 bits (e.g. -2, or 257). A number of well-understoodtechniques exist to rectify this situation, some of them proactive andsome of them reactive. Among these known techniques are: specifying thatthe digitized voice data shall not have samples in the range of 0-4 or241-255, thereby safely permitting combination with the scaled noisesignal; and including provision for detecting and adaptively modifyingdigitized voice samples that would otherwise cause rail errors.)

Returning to the telephone 2010, an encoder 2036 like that detailedabove is desirably interposed between the A/D converter 2018 and thedata formatter 2020, thereby serving to steganographically encode allvoice transmissions with the auxiliary data. Moreover, the circuitry orsoftware controlling operation of the telephone is arranged so that theauxiliary data is encoded repeatedly. That is, when all bits of theauxiliary data have been encoded, a pointer loops back and causes theauxiliary data to be applied to the encoder 2036 anew. (The auxiliarydata may be stored at a known address in RAM memory for ease ofreference.)

It will be recognized that the auxiliary data in the illustratedembodiment is transmitted at a rate one-eighth that of the voice data.That is, for every 8-bit sample of voice data, scaled noise datacorresponding to a single bit of the auxiliary data is sent. Thus, ifvoice samples are sent at a rate of 4800 samples/second, auxiliary datacan be sent at a rate of 4800 bits/second. If the auxiliary data iscomprised of 8-bit symbols, auxiliary data can be conveyed at a rate of600 symbols/second. If the auxiliary data consists of a string of even60 symbols, each second of voice conveys the auxiliary data ten times.(Significantly higher auxiliary data rates can be achieved by resortingto more efficient coding techniques, such as limited-symbol codes (e.g.5- or 6-bit codes), Huffman coding, etc.) This highly redundanttransmission of the auxiliary data permits lower amplitude scaled noisedata to be used while still providing sufficient signal-to-noiseheadroom to assure reliable decoding--even in the relatively noisyenvironment associated with radio transmissions;.

Turning now to FIG. 40, each cell site 2012 has a steganographic decoder2038 by which it can analyze the composite data signal broadcast by thetelephone 2010 to discern and separate the auxiliary data and digitizedvoice data therefrom. (The decoder desirably works on unformatted data(i.e. data with the packet overhead, control and administrative bitsremoved; this is not shown for clarity of illustration).

The decoding of an unknown embedded signal (i.e. the encoded auxiliarysignal) from an unknown voice signal is best done by some form ofstatistical analysis of the composite data signal. The techniquestherefor discussed above are equally applicable here. For example, theentropy-based approach can be utilized. In this case, the auxiliary datarepeats every 480 bits (instead of every 8). As above, the entropy-baseddecoding process treats every 480th sample of the composite signal inlike fashion. In particular, the process begins by adding to the 1st,481st, 861st, etc. samples of the composite data signal the PRN datawith which these samples were encoded. (That is, a set of sparse PRNdata is added: the original PRN set, with all but every 480th datumzeroed out.) The localized entropy of the resulting signal around thesepoints (i.e. the composite data signal with every 480th sample modified)is then computed.

The foregoing step is then repeated, this time subtracting the PRN datacorresponding thereto from the 1st, 481st, 961st, etc. composite datasamples.

One of these two operations will counteract (e.g. undo) the encodingprocess and reduce the resulting signal's entropy; the other willaggravate it. If adding the sparse PRN data to the composite datareduces its entropy, then this data must earlier have been subtractedfrom the original voice signal. This indicates that the correspondingbit of the auxiliary data signal was a "0" when these samples wereencoded. (A "0" at the auxiliary data input of logic circuit 46 causedit to produce an inverted version of the corresponding PRN datum as itsoutput datum, resulting in subtraction of the corresponding PRN datumfrom the voice signal.)

Conversely, if subtracting the sparse PRN data from the composite datareduces its entropy, then the encoding process must have earlier addedthis noise. This indicates that the value of the auxiliary data bit wasa "1" when samples 1, 481, 961, etc., were encoded.

By noting in which case entropy is lower by (a) adding or (b)subtracting a sparse set of PRN data to/from the composite data, it canbe determined whether the first bit of the auxiliary data is (a) a "0",or (b) a "1." (In real life applications, in the presence of variousdistorting phenomena, the composite signal may be sufficiently corruptedso that neither adding nor subtracting the sparse PRN data actuallyreduces entropy. Instead, both operations will increase entropy. In thiscase, the "correct" operation can be discerned by observing whichoperation increases the entropy less.)

The foregoing operations can then be conducted for the group of spacedsamples of the composite data beginning with the second sample (i.e. 2,482, 962, . . . ). The entropy of the resulting signals indicate whetherthe second bit of the auxiliary data signal is a "0" or a "1." Likewisewith the following 478 groups of spaced samples in the composite signal,until all 480 bits of the code word have been discerned.

As discussed above, correlation between the composite data signal andthe PRN data can also be used as a statistical detection technique. Suchoperations are facilitated in the present context since the auxiliarydata whose encoded representation is sought, is known, at least in largepart, a priori. (In one form of the technology, the auxiliary data isbased on the authentication data exchanged at call set-up, which thecellular system has already received and logged; in another form(detailed below), the auxiliary data comprises a predetermined message.)Thus, the problem can be reduced to determining whether an expectedsignal is present or not (rather than looking for an entirely unknownsignal). Moreover, data formatter 2020 breaks the composite data intoframes of known length. (In a known GSM implementation, voice data issent in time slots which convey 114 data bits each.) By padding theauxiliary data as necessary, each repetition of the auxiliary data canbe made to start, e.g., at the beginning of such a frame of data. This,too, simplifies the correlation determinations, since 113 of every 114possible bit alignments can be ignored (facilitating decoding even ifnone of the auxiliary data is known a priori).

Again, this wireless fraud detection poses the now-familiar problem ofdetecting known signals in noise, and the approaches discussed earlierare equally applicable here.

Where, as here, the location of the auxiliary signal is known a priori(or more accurately, known to fall within one of a few discretelocations, as discussed above), then the matched filter approach canoften be reduced to a simple vector dot product between a set of sparsePRN data, and mean-removed excerpts of the composite signalcorresponding thereto. (Note that the PRN data need not be sparse andmay arrive in contiguous bursts, such as in British patent publication2,196,167 mentioned earlier wherein a given bit in a message hascontiguous PRN values associated with it.) Such a process steps throughall 480 sparse sets of PRN data and performs corresponding dot productoperations. If the dot product is positive, the corresponding bit of theauxiliary data signal is a "1;" if the dot product is negative, thecorresponding bit of the auxiliary data signal is a "0." If severalalignments of the auxiliary data signal within the framed compositesignal are possible, this procedure is repeated at each candidatealignment, and the one yielding the highest correlation is taken astrue. (Once the correct alignment is determined for a single bit of theauxiliary data signal, the alignment of all the other bits can bedetermined therefrom. "Alignment," perhaps better known as"synchronization," can be achieved by primarily through the very samemechanisms which lock on and track the voice signal itself and allow forthe basic functioning of the cellular unit).

Security Considerations

Security of the presently described embodiments depends, in large part,on security of the PRN data and/or security of the auxiliary data. Inthe following discussion, a few of many possible techniques for assuringthe security of these data are discussed.

In a first embodiment, each telephone 2010 is provided with a long noisekey unique to the telephone. This key may be, e.g., a highly unique10,000 bit string stored in ROM. (In most applications, keyssubstantially shorter than this may be used.)

The central office 2014 has access to a secure disk 2052 on which suchkey data for all authorized telephones are stored. (The disk may beremote from the office itself.)

Each time the telephone is used, fifty bits from this noise key areidentified and used as the seed for a deterministic pseudo random numbergenerator. The data generated by this PRN generator serve as the PRNdata for that telephone call.

The fifty bit seed can be determined, e.g., by using a random numbergenerator in the telephone to generate an offset address between 0 and9,950 each time the telephone is used to place a call. The fifty bits inthe noise key beginning at this offset address are used as the seed.

During call setup, this offset address is transmitted by the telephone,through the cell site 2012, to the central office 2014. There, acomputer at the central office uses the offset address to index its copyof the noise key for that telephone. The central office therebyidentifies the same 50 bit seed as was identified at the telephone. Thecentral office 2014 then relays these 50 bits to the cell site 2012,where a deterministic noise generator like that in the telephonegenerates a PRN sequence corresponding to the 50 bit key and appliessame to its decoder 2038.

By the foregoing process, the same sequence of PRN data is generatedboth at the telephone and at the cell site. Accordingly, the auxiliarydata encoded on the voice data by the telephone can be securelytransmitted to, and accurately decoded by, the cell site. If thisauxiliary data does not match the expected auxiliary data (e.g. datatransmitted at call set-up), the call is flagged as fraudulent andappropriate remedial action is taken.

It will be recognized that an eavesdropper listening to radiotransmission of call set-up information can intercept only the randomlygenerated offset address transmitted by the telephone to the cell site.This data, alone, is useless in pirating calls. Even if the hacker hadaccess to the signals provided from the central office to the cell site,this data too is essentially useless: all that is provided is a 50 bitseed. Since this seed is different for nearly each call (repeating only1 out of every 9,950 calls), it too is unavailing to the hacker.

In a related system, the entire 10,000 bit noise key can be used as aseed. An offset address randomly generated by the telephone during callset-up can be used to identify where, in the PRN data resulting fromthat seed, the PRN data to be used for that session is to begin.(Assuming 4800 voice samples per second, 4800 PRN data are required persecond, or about 17 million PRN data per hour. Accordingly, the offsetaddress in this variant embodiment will likely be far larger than theoffset address described above.)

In this variant embodiment, the PRN data used for decoding is preferablygenerated at the central station from the 10,000 bit seed, and relayedto the cell site. (For security reasons, the 10,000 bit noise key shouldnot leave the security of the central office.)

In variants of the foregoing systems, the offset address can begenerated by the central station or at the cell site, and relayed to thetelephone during call set-up, rather than vice versa.

In another embodiment, the telephone 2010 may be provided with a list ofone-time seeds, matching a list of seeds stored on the secure disk 2052at the central office. Each time the telephone is used to originate anew call, the next seed in the list is used. By this arrangement, nodata needs to be exchanged relating to the seed; the telephone and thecarrier each independently know which seed to use to generate the pseudorandom data sequence for the current session.

In such an embodiment, the carrier can determine when the telephone hasnearly exhausted its list of seeds, and can transmit a substitute list(e.g. as part of administrative data occasionally provided to thetelephone). To enhance security, the carrier may require that thetelephone be returned for manual reprogramming, to avoid radiotransmission of this sensitive information. Alternatively, thesubstitute seed list can be encrypted for radio transmission using anyof a variety of well known techniques.

In a second class of embodiments, security derives not from the securityof the PRN data, but from security of the auxiliary message data encodedthereby. One such system relies on transmission of a randomly selectedone of 256 possible messages.

In this embodiment, a ROM in the telephone stores 256 different messages(each message may be, e.g., 128 bits in length). When the telephone isoperated to initiate a call, the telephone randomly generates a numberbetween 1 and 256, which serves as an index to these stored messages.This index is transmitted to the cell site during call set-up, allowingthe central station to identify the expected message from a matchingdatabase on secure disk 2052 containing the same 256 messages. (Eachtelephone has a different collection of messages.) (Alternatively, thecarrier may randomly select the index number during call set-up andtransmit it to the telephone, identifying the message to be used duringthat session.) In a theoretically pure world where proposed attacks to asecure system are only mathematical in nature, much of these additionallayers of security might seem superfluous. (The addition of these extralayers of security, such as differing the messages themselves, simplyacknowledge that the designer of actual public-functioning securesystems will face certain implementation economics which mightcompromise the mathematical security of the core principles of thistechnology, and thus these auxiliary layers of security may afford newtools against the inevitable attacks on implementation).

Thereafter, all voice data transmitted by the telephone for the durationof that call is steganographically encoded with the indexed message. Thecell site checks the data received from the telephone for the presenceof the expected message. If the message is absent, or if a differentmessage is decoded instead, the call is flagged as fraudulent andremedial action is taken.

In this second embodiment, the PRN data used for encoding and decodingcan be as simple or complex as desired. A simple system may use the samePRN data for each call. Such data may be generated, e.g., by adeterministic PRN generator seeded with fixed data unique to thetelephone and known also by the central station (e.g. a telephoneidentifier), or a universal noise sequence can be used (i.e. the samenoise sequence can be used for all telephones). Or the pseudo randomdata can be generated by a deterministic PRN generator seeded with datathat changes from call to call (e.g. based on data transmitted duringcall set-up identifying, e.g., the destination telephone number, etc.).Some embodiments may seed the pseudo random number generator with datafrom a preceding call (since this data is necessarily known to thetelephone and the carrier, but is likely not known to pirates).

Naturally, elements from the foregoing two approaches can be combined invarious ways, and supplemented by other features. The foregoingembodiments are exemplary only, and do not begin to catalog the myriadapproaches which may be used. Generally speaking, any data which isnecessarily known or knowable by both the telephone and the cellsite/central station, can be used as the basis for either the auxiliarymessage data, or the PRN data by which it is encoded.

Since the preferred embodiments of this aspect of the present technologyeach redundantly encodes the auxiliary data throughout the duration ofthe subscriber's digitized voice, the auxiliary data can be decoded fromany brief sample of received audio. In the preferred forms of thisaspect of the technology, the carrier repeatedly checks thesteganographically encoded auxiliary data (e.g. every 10 seconds, or atrandom intervals) to assure that it continues to have the expectedattributes.

While the foregoing discussion has focused on steganographicallyencoding a transmission from a cellular telephone, it will be recognizedthat transmissions to a cellular telephone can be steganographicallyencoded as well. Such arrangements find applicability, e.g., inconveying administrative data (i.e. non-voice data) from the carrier toindividual telephones. This administrative data can be used, forexample, to reprogram parameters of targeted cellular telephones (or allcellular telephones) from a central location, to update seed lists (forsystems employing the above-described on-time pad system), to apprise"roaming" cellular telephones of data unique to an unfamiliar localarea, etc.

In some embodiments, the carrier may steganographically transmit to thecellular telephone a seed which the cellular phone is to use in itstransmissions to the carrier during the remainder of that session.

While the foregoing discussion has focused on steganographic encoding ofthe baseband digitized voice data, artisans will recognize thatintermediate frequency signals (whether analog or digital) can likewisebe steganographically encoded in accordance with principles of thetechnology. An advantage of post-baseband encoding is that the bandwidthof these intermediate signals is relatively large compared with thebaseband signal, allowing more auxiliary data to be encoded therein, orallowing a fixed amount of auxiliary data to be repeated more frequentlyduring transmission. (If steganographic encoding of an intermediatesignal is employed, care should be taken that the perturbationsintroduced by the encoding are not so large as to interfere withreliable transmission of the administrative data, taking into accountany error correcting facilities supported by the packet format).

Those skilled in the art will recognize that the auxiliary data, itself,can be arranged in known ways to support error detecting, or errorcorrecting capabilities by the decoder 38. The interested reader isreferred, e.g., to Rorabaugh, Error Coding Cookbook, McGraw Hill, 1996,one of many readily available texts detailing such techniques.

While the preferred embodiment of this aspect of the technology isillustrated in the context of a cellular system utilizing packetizeddata, other wireless systems do not employ such conveniently frameddata. In systems in which framing is not available as an aid tosynchronization, synchronization marking can be achieved within thecomposite data signal by techniques such as that detailed in applicant'sprior applications. In one class of such techniques, the auxiliary dataitself has characteristics facilitating its synchronization. In anotherclass of techniques, the auxiliary data modulates one or more embeddedcarrier patterns which are designed to facilitate alignment anddetection.

As noted earlier, the principles of the technology are not restricted touse with the particular forms of steganographic encoding detailed above.Indeed, any steganographic encoding technique previously known, orhereafter invented, can be used in the fashion detailed above to enhancethe security or functionality of cellular (or other wireless, e.g. PCS)communications systems. Likewise, these principles are not restricted towireless telephones; any wireless transmission may be provided with an"in-band" channel of this type.

It will be recognized that systems for implementing applicant'stechnology can comprises dedicated hardware circuit elements, but morecommonly comprise suitably programmed microprocessors with associatedRAM and ROM memory (e.g. one such system in each of the telephone 2010,cell-site 2012, and central office 2014).

ENCODING BY BIT CELLS

The foregoing discussions have focused on incrementing or decrementingthe values of individual pixels, or of groups of pixels (bumps), toreflect encoding of an auxiliary data signal combined with a pseudorandom noise signal. The following discussion details a variantembodiment wherein the auxiliary data--without pseudo randomization--isencoded by patterned groups of pixels, here termed bit cells.

Referring to FIGS. 41A and 41B, two illustrative 2×2 bit cells areshown. FIG. 41A is used to represent a "0" bit of the auxiliary data,while FIG. 41B is used to represent a "1" bit. In operation, the pixelsof the underlying image are tweaked up or down in accordance with the+/- values of the bit cells to represent one of these two bit values.(The magnitude of the tweaking at any given pixel, bit cell or region ofthe image can be a function of many factors, as detailed below. It isthe sign of the tweaking that defines the characteristic pattern.) Indecoding, the relative biases of the encoded pixels are examined (usingtechniques described above) to identify, for each corresponding regionof the encoded image, which of the two patterns is represented.

While the auxiliary data is not explicitly randomized in thisembodiment, it will be recognized that the bit cell patterns may beviewed as a "designed" carrier signal, as discussed above.

The substitution of the previous embodiments' pseudo random noise withthe present "designed" information carrier affords an advantage: the bitcell patterning manifests itself in Fourier space. Thus, the bit cellpatterning can act like the subliminal digital graticules discussedabove to help register a suspect image to remove scale/rotation errors.By changing the size of the bit cell, and the pattern therein, thelocation of the energy thereby produced in the spatial transform domaincan be tailored to optimize independence from typical imagery energy andfacilitate detection.

(While the foregoing discussion contemplates that the auxiliary data isencoded directly--without randomization by a PRN signal, in otherembodiments, randomization can of course be used.)

MORE ON PERCEPTUALLY ADAPTIVE SIGNING

In several of the above-detailed embodiments, the magnitude of thesignature energy was tailored on a region-by-region basis to reduce itsvisibility in an image (or its audibility in a sound, etc.). In thefollowing discussion, applicant more particularly considers the issue ofhiding signature energy in an image, the separate issues thereby posed,and solutions to each of these issues.

The goal of the signing process, beyond simply functioning, is tomaximize the "numeric detectability" of an embedded signature whilemeeting some form of fixed "visibility/acceptability threshold" set by agiven user/creator.

In service to design toward this goal, imagine the following three axisparameter space, where two of the axes are only half-axes (positiveonly), and the third is a full axis (both negative and positive). Thisset of axes define two of the usual eight octal spaces of euclidean3-space. As things refine and "deservedly separable" parameters show upon the scene (such as "extended local visibility metrics"), then theycan define their own (generally) half-axis and extend the followingexample beyond three dimensions.

The signing design goal becomes optimally assigning a "gain" to a localbump based on its coordinates in the above defined space, whilst keepingin mind the basic needs of doing the operations fast in realapplications. To begin with, the three axes are the following. We'llcall the two half axes x and y, while the full axis will be z.

The x axis represents the luminance of the singular bump. The basic ideais that you can squeeze a little more energy into bright regions asopposed to dim ones. It is important to note that when true"psycho-linear--device independent" luminance values (pixel DN's) comealong, this axis might become superfluous, unless of course if theluminance value couples into the other operative axes (e.g. C*xy). Fornow, this is here as much due to the sub-optimality of currentquasi-linear luminance coding.

The y axis is the "local hiding potential" of the neighborhood withinwhich the bump finds itself. The basic idea is that flat regions have alow hiding potential since the eye can detect subtle changes in suchregions, whereas complex textured regions have a high hiding potential.Long lines and long edges tend toward the lower hiding potential since"breaks and choppiness" in nice smooth long lines are also somewhatvisible, while shorter lines and edges, and mosaics thereof, tend towardthe higher hiding potential. These latter notions of long and short aredirectly connected to processing time issues, as well to issues of theengineering resources needed to carefully quantify such parameters.Developing the working model of the y-axis will inevitably entail onepart theory to one part picky-artist-empiricism. As the parts of thehodge-podge y-axis become better known, they can splinter off into theirown independent axes if it's worth it.

The z-axis is the "with or against the grain" (discussed below) axiswhich is the full axis--as opposed to the other two half-axes. The basicidea is that a given input bump has a pre-existing bias relative towhether one wishes to encode a `1` or a `0` at its location, which tosome non-trivial extent is a function of the reading algorithms whichwill be employed, whose (bias) magnitude is semi-correlated to the"hiding potential" of the y-axis, and, fortunately, can be usedadvantageously as a variable in determining what magnitude of a tweakvalue is assigned to the bump in question. The concomitant basic idea isthat when a bump is already your friend (i.e. its bias relative to itsneighbors already tends towards the desired delta value), then don'tchange it much. Its natural state already provides the delta energyneeded for decoding, without altering the localized image value much, ifat all. Conversely, if a bump is initially your enemy (i.e. its biasrelative to its neighbors tends away from the delta sought to be imposedby the encoding), then change it an exaggerated amount. This lateroperation tends to reduce the excursion of this point relative to itsneighbors, making the point less visibly conspicuous (a highly localizedblurring operation), while providing additional energy detectable whendecoding. These two cases are termed "with the grain" and "against thegrain" herein.

The above general description of the problem should suffice for manyyears. Clearly adding in chrominance issues will expand the definitionsa bit, leading to a bit more signature bang for the visibility, andhuman visibility research which is applied to the problem of compressioncan equally be applied to this area but for diametrically opposedreasons. Here are guiding principles which can be employed in anexemplary application.

For speed's sake, local hiding potential can be calculated only based ona 3 by 3 neighborhood of pixels, the center one being signed and itseight neighbors. Beyond speed issues, there is also no data or coherenttheory to support anything larger as well. The design issue boils downto canning the y-axis visibility thing, how to couple the luminance intothis, and a little bit on the friend/enemy asymmetry thing. A guidingprinciple is to simply make a flat region zero, a classic pure maxima orminima region a "1.0" or the highest value, and to have "local lines","smooth slopes", "saddle points" and whatnot fall out somewhere inbetween.

The exemplary application uses six basic parameters: 1) luminance; 2)difference from local average; 3) the asymmetry factor (with or againstthe grain); 4) minimum linear factor (our crude attempt at flat v. linesv. maxima); 5) bit plane bias factor; and 6) global gain (the user'ssingle top level gain knob).

The Luminance, and Difference from Local Average parameters are straightforward, and their use is addressed elsewhere in this specification.

The Asymmetry factor is a single scalar applied to the "against thegrain" side of the difference axis of number 2 directly above.

The Minimum Linear factor is admittedly crude but it should be of someservice even in a 3 by 3 neighborhood setting. The idea is that true 2Dlocal minima and maxima will be highly perturbed along each of the fourlines travelling through the center pixel of the 3 by 3 neighborhood,while a visual line or edge will tend to flatten out at least one of thefour linear profiles. [The four linear profiles are each 3 pixels inlength, i.e., the top left pixel--center--bottom right; the topcenter--center--bottom center; the top right--center--bottom left; theright center--center--left center;]. Let's choose some metric of entropyas applied to three pixels in a row, perform this on all four linearprofiles, then choose the minimum value for our ultimate parameter to beused as our `y-axis.`

The Bit Plane Bias factor is an interesting creature with two faces, thepre-emptive face and the post-emptive face. In the former, you simply"read" the unsigned image and see where all the biases fall out for allthe bit planes, then simply boost the "global gain" of the bit planeswhich are, in total, going against your desired message, and leave theothers alone or even slightly lower their gain. In the post-emptivecase, you churn out the whole signing process replete with thepre-emptive bit plane bias and the other 5 parameters listed here, andthen you, e.g., run the signed image through heavy JPEG compression ANDmodel the "gestalt distortion" of line screen printing and subsequentscanning of the image, and then you read the image and find out whichbit planes are struggling or even in error, you appropriately beef upthe bit plane bias, and you run through the process again. If you havegood data driving the beefing process you should only need to performthis step once, or, you can easily Van-Cittertize the process (arcanereference to reiterate the process with some damping factor applied tothe tweaks).

Finally, there is the Global Gain. The goal is to make this singlevariable the top level "intensity knob" (more typically a slider orother control on a graphical user interface) that the slightly curioususer can adjust if they want to. The very curious user can navigate downadvanced menus to get their experimental hands on the other fivevariables here, as well as others.

Visible Watermark

In certain applications it is desirable to apply a visible indicia to animage to indicate that it includes steganographically encoded data. Inone embodiment, this indicia can be a lightly visible logo (sometimestermed a "watermark") applied to one corner of the image. This indicatesthat the image is a "smart" image, conveying data in addition to theimagery. A lightbulb is one suitable logo.

Appendix B

Applicant is continuing to develop a steganographic marking/decoding"plug-in" for use with Adobe Photoshop software and another softwareproduct. Refer to the representative embodiment included as commentedsource code, attached as Appendix B, the code being written forcompilation with Microsoft's Visual C++ compiler, version 4.0, and canbe understood by those skilled in the art.

Appendix C

To supplement the code provided in Appendix B, Applicant is providingthe source code for PictureMarc, for use in connection with asteganographic marking/decoding "plug-in" such as the Adobe Photoshopsoftware. The PictureMarc source code is attached as Appendix C.

Appendix D

To further supplement the code provided in Appendix B, attached asAppendix D, Applicant is providing the source code for the Web siteMarcCentre, for use in connection with PictureMarc and a steganographicmarking/decoding "plug-in" such as the Adobe Photoshop software.

Appendix E

To still further supplement the code provided in Appendix B, attached asAppendix D, Applicant is providing the source code for the Web site database (central repository), for use in connection with the MarcCentre Website, PictureMarc, and a steganographic marking/decoding "plug-in" suchas the Adobe Photoshop software. The Web site data base code is attachedas Appendix E.

Applicant's copyrights in the appendix code are reserved, save forpermission to reproduce same as part of the specification of the patent.

(While the Appendix B software is particularly designed for thesteganographic encoding and decoding of auxiliary data in/fromtwo-dimensional image data, many principles thereof are applicable tothe encoding of digitized audio or other media.)

If marking of images becomes widespread (e.g., by software compatiblewith Adobe's image processing software), a user of such software candecode the embedded data from an image and consult a public registry toidentify the proprietor of the image. In some embodiments, the registrycan serve as the conduit through which appropriate royalty payments areforwarded to the proprietor for the user's use of an image. (In anillustrative embodiment, the registry is a server on the Internet,accessible via the World Wide Web, coupled to a database. The databaseincludes detailed information on catalogued images (e.g. name, address,phone number of proprietor, and a schedule of charges for differenttypes of uses to which the image may be put), indexed by identificationcodes with which the images themselves are encoded. A person who decodesan image queries the registry with the codes thereby gleaned to obtainthe desired data and, if appropriate, to forward electronic payment of acopyright royalty to the image's proprietor.)

Particular Data Formats

While the foregoing steganography techniques are broadly applicable,their commercial acceptance will be aided by establishment of standardssetting forth which pixels/bit cells represent what. The followingdiscussion proposes one set of possible standards. For expositoryconvenience, this discussion focuses on decoding of the data; encodingfollows in a straightforward manner.

Referring to FIG. 42, an image 1202 includes a plurality of tiled"signature blocks" 1204. (Partial signature blocks may be present at theimage edges.) Each signature block 1204 includes an 8×8 array ofsub-blocks 1206. Each sub-block 1206 includes an 8×8 array of bit cells1208. Each bit cell comprises a 2×2 array of "bumps" 1210. Each bump1210, in turn, comprises a square grouping of 16 individual pixels 1212.

The individual pixels 1212 are the smallest quanta of image data. Inthis arrangement, however, pixel values are not, individually, the datacarrying elements. Instead, this role is served by bit cells 1208 (i.e.2×2 arrays of bumps 1210). In particular, the bumps comprising the bitscells are encoded to assume one of the two patterns shown in FIG. 41. Asnoted earlier, the pattern shown in FIG. 41A represents a "0" bit, whilethe pattern shown in FIG. 41B represents a "1" bit. Each bit cell 1208(64 image pixels) thus represents a single bit of the embedded data.Each sub-block 1206 includes 64 bit cells, and thus conveys 64 bits ofembedded data.

(The nature of the image changes effected by the encoding follows thetechniques set forth above under the heading MORE ON PERCEPTUALLYADAPTIVE SIGNING; that discussion is not repeated here.)

In the illustrated embodiment, the embedded data includes two parts:control bits and message bits. The 16 bit cells 1208A in the center ofeach sub-block 1206 serve to convey 16 control bits. The surrounding 48bit cells 1208B serve to convey 48 message bits. This 64-bit chunk ofdata is encoded in each of the sub-blocks 1206, and is repeated 64 timesin each signature block 1204.

A digression: in addition to encoding of the image to redundantly embedthe 64 control/message bits therein, the values of individual pixels areadditionally adjusted to effect encoding of subliminal graticulesthrough the image. In this embodiment, the graticules discussed inconjunction with FIG. 29A are used, resulting in an imperceptibletexturing of the image. When the image is to be decoded, the image istransformed into the spatial domain, the Fourier-Mellin technique isapplied to match the graticule energy points with their expectedpositions, and the processed data is then inverse-transformed, providinga registered image ready for decoding. (The sequence of first tweakingthe image to effect encoding of the subliminal graticules, or firsttweaking the image to effect encoding of the embedded data, is notbelieved to be critical. As presently practiced, the local gain factors(discussed above) are computed; then the data is encoded; then thesubliminal graticule encoding is performed. (Both of these encodingsteps make use of the local gain factors.))

Returning to the data format, once the encoded image has been thusregistered, the locations of the control bits in sub-block 1206 areknown. The image is then analyzed, in the aggregate (i.e. consideringthe "northwestern-most" sub-block 1206 from each signature block 1204),to determine the value of control bit #1 (represented in sub-block 1206by bit cell 1208Aa). If this value is determined (e.g. by statisticaltechniques of the sort detailed above) to be a "1," this indicates thatthe format of the embedded data conforms to the standard detailed herein(the Digimarc Beta Data Format). According to this standard, control bit#2 (represented by bit cells 1208Ab) is a flag indicating whether theimage is copyrighted. Control bit #3 (represented by bit cells 1208Ac)is a flag indicating whether the image is unsuitable for viewing bychildren. Certain of the remaining bits are used for errordetection/correction purposes.

The 48 message bits of each sub block 1206 can be put to any use; theyare not specified in this format. One possible use is to define anumeric "owner" field and a numeric "image/item" field (e.g. 24 bitseach).

If this data format is used, each sub-block 1206 contains the entirecontrol/message data, so same is repeated 64 times within each signatureblock of the image.

If control bit #1 is not a "1," then the format of the embedded datadoes not conform to the above described standard. In this case, thereading software analyzes the image data to determine the value ofcontrol bit #4. If this bit is set (i.e. equal to "1"), this signifiesan embedded ASCII message. The reading software then examines controlbits #5 and #6 to determine the length of the embedded ASCII message.

If control bits #5 and #6 both are "0," this indicates the ASCII messageis 6 characters in length. In this case, the 48 bit cells 1208Bsurrounding the control bits 1208A are interpreted as six ASCIIcharacters (8 bits each). Again, each sub-block 1206 contains the entirecontrol/message data, so same is repeated 64 times within each signatureblock 1204 of the image.

If control bit #5 is "0" and control bit #6 is "1," this indicates theembedded ASCII message is 14 characters in length. In this case, the 48bit cells 1208B surrounding the control bits 1208A are interpreted asthe first six ASCII characters. The 64 bit cells 1208 of theimmediately-adjoining sub-block 1220 are interpreted as the final eightASCII characters.

Note that in this arrangement, the bit-cells 1208 in the center ofsub-block 1220 are not interpreted as control bits. Instead, the entiresub-block serves to convey additional message bits. In this case thereis just one group of control bits for two sub-blocks.

Also note than in this arrangement, pairs of sub-blocks 1206 containsthe entire control/message data, so same is repeated 32 times withineach signature block 1204 of the image.

Likewise if control bit #5 is "1" and control bit #6 is "0." Thisindicates the embedded ASCII message is 30 characters in length. In thiscase, 2×2 arrays of sub-blocks are used for each representation of thedata. The 48 bit cells 1208B surrounding control bits 1208A areinterpreted as the first six ASCII characters. The 64 bit cells of eachof adjoining block 1220 are interpreted as representing the next 8additional characters. The 64 bits cells of sub-block 1222 areinterpreted as representing the next 8 characters. And the 64 bit cellsof sub-block 1224 are interpreted as representing the final 8characters. In this case, there is just one group of control bits forfour sub-blocks. And the control/message data is repeated 16 timeswithin each signature block 1204 of the image.

If control bits #5 and #6 are both "1"s, this indicates an ASCII messageof programmable length. In this case, the reading software examines thefirst 16 bit cells 1208B surrounding the control bits. Instead ofinterpreting these bit cells as message bits, they are interpreted asadditional control bits (the opposite of the case described above, wherebit cells normally used to represent control bits represented messagebits instead). In particular, the reading software interprets these 16bits as representing, in binary, the length of the ASCII message. Analgorithm is then applied to this data (matching a similar algorithmused during the encoding process) to establish a corresponding tilingpattern (i.e. to specify which sub-blocks convey which bits of the ASCIImessage, and which convey control bits.)

In this programmable-length ASCII message case, control bits aredesirably repeated several times within a single representation of themessage so that, e.g., there is one set of control bits forapproximately every 24 ASCII characters. To increase packing efficiency,the tiling algorithm can allocate (divide) a sub-block so that some ofits bit-cells are used for a first representation of the message, andothers are used for another representation of the message.

Reference was earlier made to beginning the decoding of the registeredimage by considering the "northwestem-most" sub-block 1206 in eachsignature block 1204. This bears elaboration.

Depending on the data format used, some of the sub-blocks 1206 in eachsignature block 1204 may not include control bits. Accordingly, thedecoding software desirably determines the data format by firstexamining the "northwestern-most" sub-block 1206 in each signature block1204; the 16 bits cells in the centers of these sub-blocks will reliablyrepresent control bits. Based on the value(s) of one or more of thesebits (e.g. the Digimarc Beta Data Format bit), the decoding software canidentify all other locations throughout each signature block 1204 wherethe control bits are also encoded (e.g. at the center of each of the 64sub-blocks 1206 comprising a signature block 1204), and can use thelarger statistical base of data thereby provided to extract theremaining control bits from the image (and to confirm, if desired, theearlier control bit(s) determination). After all control bits havethereby been discerned, the decoding software determines (from thecontrol bits) the mapping of message bits to bit cells throughout theimage.

To reduce the likelihood of visual artifacts, the numbering of bit cellswithin sub-blocks is alternated in a checkerboard-like fashion. That is,the "northwestern-most" bit cell in the "northwestern-most" sub-block isnumbered "0." Numbering increases left to right, and successivelythrough the rows, up to bit cell 63. Each sub-block diametricallyadjoining one of its corners (i.e. sub-block 1224) has the same orderingof bit cells. But sub-blocks adjoining its edges (i.e. sub-blocks 1220and 1222) have the opposite numbering. That is, the "northwestern-most"bit cell in sub-blocks 1220 and 1222 is numbered "63." Numberingdecreases left to right, and successively through the rows, down to 0.Likewise throughout each signature block 1204.

In a variant of the Digimarc beta format, a pair of sub-blocks is usedfor each representation of the data, providing 128 bit cells. The center16 bit cells 1208 in the first sub-block 1206 are used to representcontrol bits. The 48 remaining bit cells in that sub-block, togetherwith all 64 bit cells 1208 in the adjoining sub-block 1220, are used toprovide a 112-bit message field. Likewise for every pair of sub-blocksthroughout each signature block 1204. In such an arrangement, eachsignature block 1204 thus includes 32 complete representations of theencoded data (as opposed to 64 representations in the earlier-describedstandard). This additional length allows encoding of longer datastrings, such as a numeric IP address (e.g. URL).

Obviously, numerous alternative data formats can be designed. Theparticular format used can be indicated to the decoding software byvalues of one or more control bits in the encoded image.

In the Appendix B software, the program SIGN₋₋ PUBLIC.CPP effectsencoding of an image using a signature block/sub-block/bit cellarrangement like that detailed above. As of this writing, thecorresponding decoding software has not yet been written, but itsoperation is straightforward given the foregoing discussion and thedetails in the SIGN-PUBLIC.CPP software.

OTHER APPLICATIONS

Before concluding, it may be instructive to review some of the otherfields where principles of applicant's technology can be employed.

One is smart business cards, wherein a business card is provided with aphotograph having unobtrusive, machine-readable contact data embeddedtherein. (The same function can be achieved by changing the surfacemicrotopology of the card to embed the data therein.)

Another promising application is in content regulation. Televisionsignals, images on the internet, and other content sources (audio,image, video, etc.) can have data indicating their "appropriateness"(i.e. their rating for sex, violence, suitability for children, etc.)actually embedded in the content itself rather than externallyassociated therewith. Television receivers, internet surfing software,etc., can discern such appropriateness ratings (e.g. by use of universalcode decoding) and can take appropriate action (e.g. not permittingviewing of an image or video, or play-back of an audio source).

In a simple embodiment of the foregoing, the embedded data can have oneor more "flag" bits, as discussed earlier. One flag bit can signify"inappropriate for children." (Others can be, e.g., "this image iscopyrighted" or "this image is in the public domain.") Such flag bitscan be in a field of control bits distinct from an embedded message, orcan--themselves--be the message. By examining the state of these flagbits, the decoder software can quickly apprise the user of variousattributes of the image.

(As discussed earlier, control bits can be encoded in known locations inthe image--known relative to the subliminal graticules--and can indicatethe format of the embedded data (e.g. its length, its type, etc.) Assuch, these control bits are analogous to data sometimes conveyed inprior art file headers, but in this case they are embedded within animage, instead of prepended to a file.)

The field of merchandise marking is generally well served by familiarbar codes and universal product codes. However, in certain applications,such bar codes are undesirable (e.g. for aesthetic considerations, orwhere security is a concern). In such applications, applicant'stechnology may be used to mark merchandise, either through in innocuouscarrier (e.g. a photograph associated with the product), or by encodingthe microtopology of the merchandise's surface, or a label thereon.

There are applications--too numerous to detail--in which steganographycan advantageously be combined with encryption and/or digital signaturetechnology to provide enhanced security.

Medical records appear to be an area in which authentication isimportant. Steganographic principles--applied either to film-basedrecords or to the microtopology of documents--can be employed to providesome protection against tampering.

Many industries, e.g. automobile and airline, rely on tags to markcritical parts. Such tags, however, are easily removed, and can often becounterfeited. In applications wherein better security is desired,industrial parts can be steganographically marked to provide aninconspicuous identification/authentication tag.

In various of the applications reviewed in this specification, differentmessages can be steganographically conveyed by different regions of animage (e.g. different regions of an image can provide different internetURLs, or different regions of a photocollage can identify differentphotographers). Likewise with other media (e.g. sound).

Some software visionaries look to the day when data blobs will roam thedatawaves and interact with other data blobs. In such an era, it will benecessary for such blobs to have robust and incorruptible ways ofidentifying themselves. Steganographic techniques again hold muchpromise here.

Finally, message changing codes--recursive systems in whichsteganographically encoded messages actually change underlyingsteganographic code patterns--offer new levels of sophistication andsecurity. Such message changing codes are particularly well suited toapplications such as plastic cash cards where time-changing elements areimportant to enhance security.

Again, while applicant prefers the particular forms of steganographicencoding detailed above, the diverse applications disclosed in thisspecification can largely be practiced with other steganographic markingtechniques, many of which are known in the prior art. Likewise, whilethe specification has focused on applications of this technology toimages, the principles thereof are generally equally applicable toembedding such information in audio, physical media, or any othercarrier of information.

Finally, while the specification has been illustrated with particularembodiments, it will be recognized that elements, components and stepsfrom these embodiments can be recombined in different arrangements toserve different needs and applications, as will be readily apparent tothose of ordinary skill in the art.

In view of the wide variety of implementations and applications to whichthe principles of this technology can be put, it should be apparent thatthe detailed embodiments are illustrative only and in no way limit thescope of my invention. Instead, I claim as my invention all suchembodiments as come within the scope and spirit of the following claimsand equivalents thereto.

I claim:
 1. A multi-computer system including a network for embeddingand reading a watermark, the system comprising:a first digitalelectrical computer system comprising a first digital electricalcomputer electrically connected to a first input device, to a firstoutput device, and to a first memory storing a plurality of creatoridentifiers and creator contact data corresponding to each of thecreator identifiers; a second digital electrical computer systemcomprising a second digital electrical computer electrically connectedto a second input device and to a second output device, the seconddigital electrical computer being programmed to embed a watermark in adigital photographic image, the watermark including one of the pluralityof creator identifiers; a third digital electrical computer systemcomprising a third digital electrical computer electrically connected toa third input device and to a third output device, the third digitalelectrical computer being programmed to read the watermark in thedigital photographic image to reveal the one of the plurality of creatoridentifiers; a network for communicating the revealed one of theplurality of creator identifiers to the first digital electricalcomputer to obtain the creator contact data corresponding to the one ofthe plurality of creator identifiers from the memory.
 2. The system ofclaim 1, wherein:the second digital electrical computer is programmed toautomatically detect for a watermark when an image is first examined bythe second digital electrical computer.
 3. The system of claim 1,wherein:the second digital electrical computer is programmed toselectably detect for a watermark when an image is examined by thesecond digital electrical computer.
 4. The system of claim 1,wherein:the network includes the Internet; the watermark includesinformation identifying a World Wide Web site; and wherein the thirddigital electrical computer system is programmed to load a World WideWeb browser and connect to the World Wide Web site in response to therevealed one of the plurality of creator identifiers.
 5. The system ofclaim 1, wherein:the watermark includes extended data including at leastone member from the group consisting of an organization identifier, atransaction identifier, and an item identifier.